自动装箱和拆箱
Posted quanhaijie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动装箱和拆箱相关的知识,希望对你有一定的参考价值。
1.自动装箱
ArrayList<Integer> list = new ArrayLlist<Integer>();
list.add(2);
自动变换为
list.addInteget.valueOf(2);
这种变换称为自动装箱。
2.自动拆箱
int n = list.get(i);
以上语句被翻译为
int n = list.get(i).intValue();
也就是说自动拆箱。
3.自增操作产生装箱拆箱
Integer n = 3;
n++;
编译器将自动插入一个对象拆箱的指令,然后进行自增计算,最后把结果装箱。
4.自动装箱的一些规范
自动装箱规范要求boolean、byte、char <= 127,介于-128~127之间的short和int被包装到固定的对象中。例如
Integer a = 100;
Integer b = 100;
则a == b所得到的结果是true
Integer a = 1000;
Integer b = 1000;
则a == b 所得到的结果是false
5.一些注意点
装箱和拆箱是编译器认可的,而不是虚拟机,编译器在生成类的字节码时,插入必要的方法调用,虚拟机只是执行这些字节码。
以上是关于自动装箱和拆箱的主要内容,如果未能解决你的问题,请参考以下文章