Item 49: 基本类型优先于装箱基本类型

Java 1.5引入了自动装箱和自动拆箱。这在有些时候很方便,但是要谨慎选择。

它们的三个主要区别:

  1. 基本数据类型只有值,装箱基本类型是一个类。
  2. 装箱基本类型有个非功能值:null
  3. 基本数据类型比装箱基本类型更省时间和空间。
Integer i5 = 127;//java在编译的时候,被翻译成-> Integer i5 = Integer.valueOf(127);【装箱】
Integer i6 = 127;
System.out.println(i5 == i6);//true,但是不要这么做。【拆箱】

不要用==来比较两个integer,没意义。另外,如果不new一个Integer而直接用==来跟一个int值比较,是会空指针的。

什么时候该用装箱基本类型

  1. 集合中的元素、key、value必须用装箱基本类型。
  2. 泛型的参数必须用装箱基本类型。
  3. 反射调用必须用装箱基本类型。

你可能感兴趣的:(Item 49: 基本类型优先于装箱基本类型)