久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      int和Integer的區(qū)別

      int和Integer的區(qū)別

      int和Integer的區(qū)別

      1、Integer是int的包裝類,int則是java的一種基本數(shù)據(jù)類型

      2、Integer變量必須實(shí)例化后才能使用,而int變量不需要

      3、Integer實(shí)際是對象的引用,當(dāng)new一個(gè)Integer時(shí),實(shí)際上是生成一個(gè)指針指向此對象;而int則是直接存儲數(shù)據(jù)值

      4、Integer的默認(rèn)值是null,int的默認(rèn)值是0

      推薦學(xué)習(xí):java教程

      延伸:

      關(guān)于Integer和int的比較

      1、由于Integer變量實(shí)際上是對一個(gè)Integer對象的引用,所以兩個(gè)通過new生成的Integer變量永遠(yuǎn)是不相等的(因?yàn)閚ew生成的是兩個(gè)對象,其內(nèi)存地址不同)。

      Integer i = new Integer(100); Integer j = new Integer(100); System.out.print(i == j); //false

      2、Integer變量和int變量比較時(shí),只要兩個(gè)變量的值是向等的,則結(jié)果為true(因?yàn)榘b類Integer和基本數(shù)據(jù)類型int比較時(shí),java會自動拆包裝為int,然后進(jìn)行比較,實(shí)際上就變?yōu)閮蓚€(gè)int變量的比較)

      Integer i = new Integer(100); int j = 100; System.out.print(i == j); //true

      3、非new生成的Integer變量和new Integer()生成的變量比較時(shí),結(jié)果為false。(因?yàn)榉莕ew生成的Integer變量指向的是java常量池中的對象,而new Integer()生成的變量指向堆中新建的對象,兩者在內(nèi)存中的地址不同)

      Integer i = new Integer(100); Integer j = 100; System.out.print(i == j); //false

      4、對于兩個(gè)非new生成的Integer對象,進(jìn)行比較時(shí),如果兩個(gè)變量的值在區(qū)間-128到127之間,則比較結(jié)果為true,如果兩個(gè)變量的值不在此區(qū)間,則比較結(jié)果為false

      Integer i = 100;Integer j = 100; System.out.print(i == j); //trueInteger i = 128; Integer j = 128; System.out.print(i == j); //false

      對于第4條的原因:
      java在編譯Integer i = 100 ;時(shí),會翻譯成為Integer i = Integer.valueOf(100);,而java API中對Integer類型的valueOf的定義如下:

      public static Integer valueOf(int i){     assert IntegerCache.high >= 127;     if (i >= IntegerCache.low && i <= IntegerCache.high){         return IntegerCache.cache[i + (-IntegerCache.low)];     }     return new Integer(i); }

      java對于-128到127之間的數(shù),會進(jìn)行緩存,Integer i = 127時(shí),會將127進(jìn)行緩存,下次再寫Integer j = 127時(shí),就會直接從緩存中取,就不會new了

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號