jdk 1.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           

   }
} 

バイトが-12-18-137以内の数字は、いったん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