為什么Integer a=100,b=100時候a==b返回true,而Integer c=1000,d=1000時候c==d返回false


Integer a=100 實際上是執行了 Integer i=Integer.valueOf(100)的操作,Integer類型的范圍是-128~127,當滿足條件時會放入緩存空間中。

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

而c=1000不在-128~127的范圍內,則會開辟新的內存地址。所以c==d返回為false。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM