1、String 是最基本的数据类型吗?
不是,java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用 StringBuffer 类。 如果String做+操作这样的代码连sonar扫描都过不了。
2、int 和 Integer 有什么区别
int是java基本类型之一, Integer是对int提供的封装类。注意是封装类,就类似我们自定义的User类一样。
Integer的默认值是null,int默认值是0。
用=号比较两个Integer时,比较的是引用,所以
Integer i6 = 128;
Integer i7 = 128;
System.out.println(i6 == i7);//false 。
但 Integer i4 = 127;//编译时被翻译成:Integer i4 = Integer.valueOf(127);
Integer i5 = 127;
System.out.println(i4 == i5);//true
因为Integer. valueOf()这个函数对于-128到127之间的数,会进行缓存, Integer i5 = 127时,会将127进行缓存,下次再写Integer i6 = 127时,就会直接从缓存中取,就不会new了。