在Java中,為什么"100==100"為true,而"1000==1000"為false?


為什么"100==100"為true,而"1000==1000"為false?


  • int是Java的基本數據類型,基本數據類型不存在引用,直接保存數值。雙等號會比較int的值。所以用int聲明兩個1000是相等的。如果一邊是int,一邊是Integer,Integer會自動拆箱成int來比較,所以值為true。


  • Integer是一個對象,雙等號會比較對象的地址是否相同。
  • 查看Integer源碼

  • 它在內部實際上是用了IntegerCache緩存了的-128 到 127 之間的所有的整數對象。如果聲明變量的值在這個范圍內,用的是同一個緩存對象,否則不是同一個,1000不在這個范圍內,so,有以上結論。


免責聲明!

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



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