java 初级

java  入门
jdk + eclipse/idea
JDK是Java Development Kit 的缩写,Java的开发工具包

  • bin文件夹:JDK工具程序,包括javac、java、javadoc、appletviewer
  • include文件夹:存放用于本地方法的文件
  • jre文件夹:存放Jaca运行环境文件
  • lib文件夹:存放Java的类库文件,即工具程序使用的Java类库

工程的创建/运行  seed

工程环境配置 /运行

  • 创建/svnDownload  java  工程
  • 设置工程,本地jdk版本,编码格式
  • 配置启动项
  • 创建/svnDownload  web  工程
  • 配置server
  • 常见问题锦集

Java 设计理念

  •  Java  抽象类与接口
  • Java 单继承 方法覆写/重写
  • Java 枚举
  • Java 内部类
  • Java Collections,Arrays,Objects
  • Java method 重载  
  • Java  main 方法


Java   抽象类

  • 抽象方法是一种特殊的方法:它只有声明,而没有具体的实现
  • 如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰
  • 抽象类缺省情况下默认为public
  • 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类
  • 抽象类不能用来创建对象
public abstract class StreamUtils {
    public static final int BUFFER_SIZE = 4096; // 缓冲区size
    abstract void fun();
    
    
}


Java   接口

  • 在软件工程中,接口泛指供别人调用的方法或者函数
  • 不忘初衷接口是对行为的抽象
  • 接口中的变量会被隐式地指定为public static final变量 用private修饰会报编译错误
  • 方法会被隐式地指定为public abstract方法且只能是public abstract方法,用其他关键字,比如private、protected、static、 final等修饰会报编译错误
  • 接口中的方法必须都是抽象方法
  • 接口比抽象类更加“抽象”

public interface CsFkTzTmpEntityDao {}
public interface ArchivesCollectService {}

Java  部分关键字

  • continue关键字  跳过本次循环,重新开始下一趟循环。
  • break关键字     跳出当前的case语句/跳出当前循环结构
  • this  关键字    this就是一个指向这个对象自己的一个引用
  • extends 关键字
  • static 关键字  修饰类,方法,变量 
  • final 关键字  修饰类,方法,变量,不可变,一个即是 static 又是final的常量会占据一段不能改变的内存空间。
  • transient 瞬态关键字 修饰变量
  • supper 关键字    调用父类属性/方法
  • return 关键字   返回值  退出方法
  • instanceof 关键字   判断一个对象是不是某个特定类的一个实例 
public class ApplicationException extends RuntimeException {
	private final transient ErrorInfo errorInfo; //  transient 修饰的变量,生命周期仅存于调用者的内存中,不会写到磁盘里持久化
	
	public ApplicationException(ErrorInfo errorInfo) {
        super(String.format("error msg: {%s}", errorInfo.getMessage()));
	}
}

private String cXmmc;
private Short nYear;
private Integer nNy;
private Long nJds;
private Date dCjrq;
private BigDecimal nZjf;



public static String saveFileFromInputStream(MultipartFile file,String fileName) throws IOException {
	byte[] bs = new byte[1024*1024];// 1K的数据缓冲
}
public static final int BUFFER_SIZE = 4096;
public static String copyToString(InputStream in, Charset charset) throws IOException {
	char[] buffer = new char[BUFFER_SIZE];
}
public static byte[] export(List<List<String>> list) {
	int length = headerList.size();
}
private byte[] whitePdf(HgWtfgEntityWithBLOBs entity) throws DocumentException, IOException {
	float[] wid1 ={0.25f,0.25f,0.25f,0.25f}; //列宽度的比例
}

java switch语句
 

  • 在java5之前,它必须是一个能返回整数或者char类型的表达式
  • 在java5当中,引入了对枚举Enum类型支持
  • 在java7当中,switch以及可以匹配字符串了


java  数组/链表
 

length是数组的一个属性,在获取值的时候是按属性的方法获取
而size()是链表的一个方法,用于获取链表的长度


数据结构和使用偏好

数组在内存中得表现 连续的存储空间
数组随机读取效率很高(index)
在使用数组前要先申请占内存的大小,可能会浪费内存空间
插入数据和删除数据效率低
不利于扩展
链表  在内存中可以存在任何地方,不要求连续
每一个数据都保存了下一个数据的内存地址(next)
增加数据和删除数据很容易
查找数据时效率低
不指定大小,扩展方便

  • java Vector  ArrayList 都是以数组的形式存储在内存中  ,其中 Vector 被 Synchronized 修饰,所以线程是安全的, ArrayList 线程不安全
  • java LinkedList 则以链表的形式进行存储,所以查询效率底,新增和删除效率高, 线程不安全
public class CommonServiceImpl implements CommonService {
    private List<MkxxModel> getChilMkxx(Integer nSjmk ,List<MkxxEntity> mkxxEntities){
    List<MkxxModel> MkxxList = new ArrayList<>();

    }

    private void removeAgentFully(SnmpMibAgent agent) {
        Vector<TreeNode> v = new Vector<>();
    }
    public byte[] expUserDetailedByQuery(SubbranchQuery query, String select) {
        List<String> sumList = new LinkedList<>();
    }
}

java   inerface /  java   implements

  • 实现一个接口就是要实现该接口的所有的方法(抽象类除外)
  • 接口中的方法都是抽象的。
  • 多个无关的类可以实现同一个接口
  • implements可以实现多个接口,用逗号分开
public inerface Runner {}

public interface Animal extends Runner{}

public class Fish implements Animal{}

Java 工具类

// Arrays 数组工具类
public static String merge(String str, String insertStr, boolean optFlag) {
	String[] headList = {};
	list.add(Arrays.asList(headList));
}

// Objects工具类
public boolean impExcel(MultipartFile file) {
	List<Object> dataList = null;
	// for  iter
	for (Object objects : dataList) {
		HgFxdjmxbEntity hgFxdjmxbEntity = (HgFxdjmxbEntity) objects;
		hgFxdjmxbDao.insertSelective(hgFxdjmxbEntity);
	}
}

// Collections 集合工具类
public byte[] exportCollectRecordExcel(CollectRecordQuery query) {
	if(!CollectionUtils.isEmpty(phoneRecordList)){
		index = getBodyData(phoneRecordList, headList, UrgeModeEnum.PHONE.getCode(), index, phoneBodyList);
	}
}


java  extends


不是声明为final或者定义为abstract的类就能继承
JAVA中不支持多重继承,但是可以用接口来实现

//继承的优势
A a = new B(); //  前提 B extends A   不能访问子类的属性和方法  上传(upcast)是舍弃  安全的
A a = new A(); //  不仅能够访问自己的属性和方法,也能够访问父类的属性和方法   下传(downcast)是add,通常是不安全的


多态

// a1,a2两个虽然都是A类对象,但各自的f()不同。这正是多态性的体现
A a1 = new B();  // 前提 B extends A
A a2 = new C();  // 前提 C extends A

Java enum

package com.copote.common.enums;

/**
 * 是否执行标志
 */
public enum ExecuteMarkEnum {
    // 枚举变量
    ALREADY_EXECUTE(1,"已执行"), NOT__EXECUTE(0,"未执行");

    //成员变量
    private int code;
    private String name;
    
    // 构造函数
    private ExecuteMarkEnum(int code, String name){
        this.code = code;
        this.name = name;
    }
    // get  set
    public int getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    // 普通方法
    public static String getNameByCode(int code){
        ExecuteMarkEnum[] applicationEnums = ExecuteMarkEnum.values();
        for(ExecuteMarkEnum applicationEnum : applicationEnums){
            if(applicationEnum.getCode() == code){
                return applicationEnum.getName();
            }
        }
        return null;
    }
}

 https://blog.csdn.net/chen_006/article/details/88656268   jdk  jre  区别

https://www.cnblogs.com/telwanggs/p/9459605.html   java   javaWeb  工程环境配置

https://blog.csdn.net/topdeveloperr/article/details/81414318   Java 重要

https://blog.csdn.net/qq_27093465/article/details/52180865   java enmu  7 种常见用法

https://blog.csdn.net/qq_42473704/article/details/81489012   java 工具类

https://www.cnblogs.com/dolphin0520/p/3811437.html   java  abstract 类 和 interface  

https://blog.csdn.net/qq_39291929/article/details/81351026  数组和链表

发布了231 篇原创文章 · 获赞 3 · 访问量 8000

猜你喜欢

转载自blog.csdn.net/qq_32265719/article/details/103710178
今日推荐