自动装箱自动拆箱
我们在java5中引入概念
把基本数据类型自动装箱成包装类
把包装类自动拆箱成基本数据类型
我们可以用javap查看字节码文件
首先我们要通过javac编译.java文件
获取字节码.class文件
然后用javap查看
源码
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Integer a = 1000;//装箱
Integer b = 1000;//装箱
System.out.println(a + b);//拆箱计算 返回值为int
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add(i);//装箱
}
}
}
包装类具有缓存机制
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Integer a1 = 1;//装箱
Integer a2 = 1;//装箱
System.out.println(a1 == a2);//ture
Integer b1 = 200;//装箱
Integer b2 = 200;//装箱
System.out.println(b1 == b2);//false
}
}
1.使用与整数区间-127到128之间
2.true和false的布尔值
3.\u0000 \u007f 之间的字符
只适用于自动装箱 使用构造函数创建对象不适用
这个区间内我们可以直接用==比较
我们在Integer的源码里找到了它
源于缓存