黑马程序员-jdk1.5新特性--基本数据类型的自动拆箱与装箱

来源:互联网 发布:手机系统数据损坏 编辑:程序博客网 时间:2024/05/16 10:58

自动装箱:

   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中,他们实际只会出出一个对象。                       //因此下面一句返回TrueSystem.out.println(i1==i2);Integer i3=137;Integer i4=137;                    //而下面一句,则是两个不同对象。所以返回falseSystem.out.Println(i3==i4);//上面这种模式称为享元模式,用享元模式可以节省大量内存空间。}


Integer i3=Integer.valueOf(3);

Integer i4=Integer.valueOf(3);

在jdk1.5中用以前的方法手动装箱,同样会用到享元模式。因此下面一句返回也是true

System.out.println(i3==i4)

原创粉丝点击