- : 直接拼接字符串,每次循环都会创建新的字符串对象,然后扔掉旧的字符串,不但浪费内存,还会影响GC效率。
StringBuilder:预分配缓冲区,不会创建新的临时对象。
StringJoiner: 分隔符拼接数组StringJoiner(", "),以开始结尾并加分隔符拼接StringJoiner(", ", "开始", "结尾")
join(): 简单拼接字符串
基本类型:byte,short,int,long,boolean,float,double,char
引用类型:所有class和interface类型,Boolean、Byte、Short、Integer、Long、Float、Double、Character
int和Integer可相互转换
自动装箱: 直接把int变为Integer的赋值写法 自动拆箱: 把Integer变为int的赋值写法
装箱和拆箱会影响代码的执行效率,自动拆箱执行时可能会报NullPointerException。
引用类型不可用==比较,可用equals()方法比较。
创建新的Integer实例: Integer n = new Integer(100);
把内部优化留给Integer的实现者去做,即使在当前版本没有优化,也有可能在下一个版本进行优化: Integer n = Integer.valueOf(100);
JavaBean: 传递数据,把一组数据组合成一个JavaBean便于传输
enum类型的每个常量在JVM中只有一个唯一实例,比较时用==和equals()都可以。enum只能定义无法继承,定义的每个实例都时唯一的,enum可用于switch。可以为enum编写构造方法、字段和方法。enum的构造方法要声明为private,字段强烈建议声明为final。
enum方法: name()返回常量名; ordinal()返回定义的常量的顺序,从0开始计数; toString()会返回和name()一样的字符串
switch: