自动拆装箱
自动装箱/拆箱机制是编译器认可的,也就是编译器在相应的位置插入字节码,虚拟机按部就班执行,
即该机制对虚拟机透明。
自动装箱/拆箱机制是给程序员的语法糖,使得对于基本类型到封装类型之间的过渡如丝般柔滑。
对应的类型转换表如下:
1 | Integer | int |
---|---|---|
2 | Long | long |
3 | Float | float |
4 | Double | double |
5 | Short | short |
6 | Byte | byte |
7 | Character | char |
8 | Void | void |
自动拆装箱的实现
自动装箱通过调用封装类的valueOf()
方法,自动拆箱通过调用封装类的<type>Value()
。
equals()
与拆装箱
介于-128到127之间的short/int会被封装到固定的对象中,也就是:
int val=100
Integer a=val;
Integer b=val;
System.out.println(a==b);//true
而
int val=1000
Integer a=val;
Integer b=val;
System.out.println(a==b);//false