Keep Moving

          一個(gè)人倘若需要從思想中得到快樂(lè),那么他的第一個(gè)欲望就是學(xué)習(xí)。
          隨筆 - 16, 文章 - 10, 評(píng)論 - 1, 引用 - 0
          數(shù)據(jù)加載中……

          Java Integer


          public class Test {
              
          public static void main(String[] args) {
                  Integer i1 
          = 100;
                  Integer i2 
          = 100;
                  
          if (i1 == i2) {
                      System.out.println(
          "i1==i2");
                  } 
          else {
                      System.out.println(
          "i1!=i2");
                  }

                  Integer i3 
          = 200;
                  Integer i4 
          = 200;
                  
          if (i3 == i4) {
                      System.out.println(
          "i3==i4");
                  } 
          else {
                      System.out.println(
          "i3!=i4");
                  }
              }
          }

          /**
          *  i1==i2;
          *  i3!=i4;
          */

           

          java “==”就是比較引用,沒(méi)有重載過(guò),而由于-128至127內(nèi)的Interger都是同一個(gè)對(duì)象引用,

          所以第一個(gè)比較式true 之外的Interger 則不是同一個(gè)對(duì)象,所以比較為false
          重載的應(yīng)該是equals()方法,所以如果用equals來(lái)比較應(yīng)該都為true.

          在JDK源碼中Integer類有一個(gè)內(nèi)部類IntegerCache,它默認(rèn)創(chuàng)建了一個(gè)-128~127的Integer對(duì)象數(shù)組。
          只要比較的是在這256個(gè)數(shù)內(nèi),就直接在對(duì)象池里查找并返回該對(duì)象。
          這是Java處于性能的考慮,目的是節(jié)省內(nèi)存。
          至于范圍之外的,不同的引用就不相等了。 

           

           

           

           

           

          posted on 2009-05-24 13:50 BruceLeey 閱讀(143) 評(píng)論(0)  編輯  收藏 所屬分類: JVM


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
          相關(guān)文章:
           
          主站蜘蛛池模板: 饶平县| 许昌市| 舟曲县| 吴桥县| 吐鲁番市| 沙洋县| 甘德县| 广平县| 新余市| 株洲县| 内江市| 陆川县| 韶山市| 内黄县| 临湘市| 安丘市| 吉水县| 耒阳市| 峡江县| 平定县| 罗平县| 双流县| 明光市| 江门市| 灵石县| 康定县| 龙井市| 宁晋县| 越西县| 霍林郭勒市| 克什克腾旗| 济源市| 永寿县| 临沭县| 三江| 昌江| 观塘区| 调兵山市| 鄂州市| 宜昌市| 老河口市|