jdk1.5装箱与拆箱的示列

java代码:

 

public  class  AutoBox

{

   public static viod main(String[] args)

    {
           Integer iobj=3;//自动把基本类型3装成了Integer类型,在赋给iobj(自动装箱)

            System.out.println(iobj+12);

            //iobj是Integer类型,Integer不支持加法,它必须转换成基本类型整数才可以(自动拆箱)
 

              Integer i1=12;

              Integer i2=12;

            System.out.println(i1==i2); //true

            Integer i1=137;

              Integer i2=137;

            System.out.println(i1==i2); //false           

   }
} 

在一个字节为-128--127之内的数字,一旦包装成Integer对象是将它们缓存起来,节省空间。因为数字小,出现的几率大,没必要每一个数字对应一个对象,这是一种设计模式,称为享元模式, 享元模式: 有很多个小的对象。它们有很多属性相同,把它们变成一个对象那些不同的属性把它们变成方法的参数称为外部开放,相同属性称为内部状态。

 

同理:

Integer i3=Integer.ValueOf(3);

Integer i4=Integer.ValueOf(3);

System.out.println(i3==i4); //true

Integer i3=Integer.ValueOf(137);

Integer i4=Integer.ValueOf(137);

System.out.println(i3==i4); //false


 

 

 

 

你可能感兴趣的:(java,设计模式,jdk,String,Integer,Class)