包装类
将基本数据类型转化为对象操作,位于java.lang包,自动导入。
比如Integer类就是int类型的数字转化Integer对象
Integer.parseInt();//将字符串转化为数字
Integer i = new Integer("2323");
String s = i+"";//将数字转化为字符串
intValue();//将Integer转化int
autoboxing(自动装箱)和unboxing(自动拆箱)
为了提高效率,Java 5之后在编译器内自动把基本数据类型转化为包装类,即autoboxing,反之则是unboxing,但在自动拆箱的时候,包装类不能为“null”,。这个处理被称为“compiler sugar”(编译器蜜糖)。
var list = new ArrayList<Integer>();
list.add(3);// 这里“3”从int这种primitive类型自动转化为Integer包装类。
Integer i1 = null;
int i3 = i1;
System.out.println(i3);<>报错:java.lang.NullPointerException<>
对于Integer类,为了提高效率,在[-128,127]内的数字自动装箱后,涉及到一些操作,如“==”,会做缓存处理,即作为基本数据类型处理。
Integer i1 = 123;
Integer i2 = 123;
System.out.println(i1==i2);<>结果为true<>