JAVA语言中有个名词叫自动拆箱、装箱,那这个自动拆箱、装箱究竟是指啥?程序员
自动拆箱、装箱是从JDK1.5开始才有的特性,其实它主要就是指基本类型与包装类的自动转换。面试
如int 与Integer类型。
int 是基本类型,而Integer是int的包装类,在JDK1.5以前,int类型的值是不能直接赋给Integer类型的值 的,也就是说
Integer integer = 5; 会报错,由于5是基本类型,而Integer是包装类,Integer的正肯定义方式为:
Integer integer = new Integer(5); 可是,从基本类型转换成包装类是常常使用的操做,尤为是Integer与int的转换非常频繁。因此在JDK1.5开始,它们之间的转换不在需要程序员再去进行转换了,JDK已经将它自动进行了转换,这种操做就叫自动拆箱、装箱。code
int i = 5; Integer ii = i; //这种写法在JDK1.5及之后的版本是正确的,由于系统会自动将int向Integer进行转换,这种操做就叫自动装箱。 int j = ii; //这种写法是将Integer的值自动转换成了int基本类型,这种自动转换的方法就叫自动拆箱。
不仅是int与Integer能够自动转换,八大基本类型均可以, 如下是八大基本类型及对应的包装炻float
基本类型 byte short int long float double char boolean
包装类型 Byte Short Integer Long Float Double Character Boolean程序
其中,int与Integer的转换最多也最频繁,因此有一点要注意,也是面试时常问到的问题:
int与Integer的区别:
1.int的默认值 为0,而Integer的默认值为null,在使用Integer前须要初始化。
2.int是基本类型,而Integer是包装类,能够自动 拆箱、拆箱,Integer封装了不少的方法,方法