Java 1.5引入了自动装箱和自动拆箱。这在有些时候很方便,但是要谨慎选择。
它们的三个主要区别:
- 基本数据类型只有值,装箱基本类型是一个类。
- 装箱基本类型有个非功能值:null
- 基本数据类型比装箱基本类型更省时间和空间。
Integer i5 = 127;//java在编译的时候,被翻译成-> Integer i5 = Integer.valueOf(127);【装箱】
Integer i6 = 127;
System.out.println(i5 == i6);//true,但是不要这么做。【拆箱】
不要用==来比较两个integer,没意义。另外,如果不new一个Integer而直接用==来跟一个int值比较,是会空指针的。
什么时候该用装箱基本类型
- 集合中的元素、key、value必须用装箱基本类型。
- 泛型的参数必须用装箱基本类型。
- 反射调用必须用装箱基本类型。