java的自动装箱与拆箱是针对基本数据类型而言的。
自动装箱:基本数据类型转换为引用类型的数据时会进行自动装箱。
自动拆箱:当引用类型的数据与基本类型数据进行运算时会进行自动拆箱。
int num = 4;
Integer i = 4;//i = new Integer(4);自动装箱
i = i + 6;//i = new Integer(i.intValue() + 6);自动拆箱
- 基本数据类型与基本数据类型对象包装类的对应关系:
byte ——> Byte
short ——> Short
int ——> Integer(Integer与int的唯一区别是,Integer多了一个null值。)
long ——> Long
float ——> Float
double ——> Double
char ——> Character
boolean ——> Boolean
- 自动装箱过程中,如果装箱的是一个字节(即数值不大于127),则数据会被共享,不会重新开辟空间(只有字节会出现这种情况)
Integer x = 127;
Integer y = 127;
System.out.println(x == y);//true
System.out.println(x.equals(y));//true
Integer x = 128;
Integer y = 128;
System.out.println(x == y);//false
System.out.println(x.equals(y));//true