自动装箱:
Interger num1=12;
自动拆箱
System.out.println(num1+12);
基本数据类型的对象缓存:
Integer num1=12;
Integer num2=12;
System.out.println(num1==num2);
integer num3=129;
integer num4=129;
System.out.println(num3==num4);
Integer num5=Integer.valueOf(12);
Integer num6=Integer.valueOf(12);
System.out.println(num5==num6);
例:
Package cn.itcast.day1;
Class AutoBox
public static void main(String[] args){
Integer iObj=3; //以前直接等于3这种方法是不行的,必须用net Integer把他封装成对象才行。
//而1.5后就直接进行了装箱。
System.out.println(iObj+12); //以前这里的iObj是Integer对象是不能直接做加法的。而1.5进行了自动拆箱。就可以实现
Integer i1=13;
Integer i2=13;//这两句中的13都被自动装箱了,但实际他们只是一个对象。
//在自动装箱中如果数字在一个字节内-128-127中,他们实际只会出出一个对象。
//因此下面一句返回True
System.out.println(i1==i2);
Integer i3=137;
Integer i4=137;
//而下面一句,则是两个不同对象。所以返回false
System.out.Println(i3==i4);
//上面这种模式称为享元模式,用享元模式可以节省大量内存空间。
}
Integer i3=Integer.valueOf(3);
Integer i4=Integer.valueOf(3);
在jdk1.5中用以前的方法手动装箱,同样会用到享元模式。因此下面一句返回也是true
System.out.println(i3==i4)