1.常量池的知識
和String的對象池一樣,幾種整數基礎類型的包裝類型也有對象池機制。也就是說用Integer int1 = 30這種方式聲明一個Integer對象時會先到對象池中找有沒有值爲30的對象,如果有直接拿來用,如果沒有則重新創建一個對象放入對象池中。
緩存範圍[-128到127],超出此範圍的不會被緩存。而128剛好超出,所以i1 == i2的結果爲false,如果在緩存範圍內,那i1 == i2的結果就爲true
2.自動裝箱自動折箱的知識
System.err.println(i1 == i3);//(2)
System.err.println(i2 == i3);//(3)
這兩行代碼都隱式做了折箱操作