装箱就是自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。
自动装箱,范围在 -128 ~ 127 【256个数字 】的地址是一样的,-128 到 127 之间的有个自动装箱的缓存池。
超过这个区域,就会自动创建对象
对于Integer和Double的自动装箱,只能装对应的数据类型,不对应就会报错。
Integer i=100;//没有问题
Integer i2=100.0;//报红杠,因为默认是double
Integer i3=(byte)100;//报红杠
Short s = (byte) 100;//没有问题,是不是很神奇?说明上面的规律对Short不适用
Double d=100; //报红杠
Double d=100.0;//没有问题
Double d=100.0f;//报红杠
double d=100;//没有问题,100是int类型,自动转换为double.
Double d=Double.valueOf("100"); //正确
Double d=Double.valueOf(100);//正确
Double d=new Double(100);//正确