1.int和Integer(自动)拆装箱
jdk1.5之后:
自动装箱:自动装箱简单来说就是将数据类型封装成对象类型。
Integer a1 = 1024;
装箱:
Integer a2 = new Integer(1024);
自动拆箱: 将对象类型转化成基本数据类型。
int b1 = a1;
拆箱:
int b2 = a1.intValue();
另:
a1 == a1; -》 false a1和a2是不同对象的引用
a1 == b1 && a1 ==b2 -》true 自动拆箱后比较的是值
Integer a3 = 99; Integer b3 = 99;
a3 == b3 -》true
享元模式: 在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象。只要在-128到127之间,那么他们指的就是同一个,即使==比较的是两者的引用,两者也是相同的,因为-128到127这些数字是使用频率比较高的,就产生了一个整型常量池,这些数字会存放在这里,有相同的数字则不会再次创建。
补充:8种基本类型的包装类和常量池
java基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean;这物种包装类默