Java 中的整數快取
查詢:
在Java 中,為什麼比較c == d 的結果為true儘管是不同的Integer 物件(c = 100 且d = 100)?
回應:
為了提高效能和記憶體利用率,Java 對 -128 到 127 範圍內的整數物件使用快取。因此,c 和d 引用同一個快取實例。
目的最佳化:
-
記憶體保護:透過快取常見整數值,與為每個不同值建立單獨的物件相比,Java 節省了大量記憶體空間。
- 快取效率:快取經常使用的整數值透過最小化快取來提高快取效能
優點:
-
增強效能:減少記憶體消耗並提高快取效率,從而加快程式碼執行速度。
-
最佳化記憶體使用率:快取整數可以為其他應用程式釋放寶貴的記憶體資源。
研究
以下參考資料提供了對此主題的進一步見解:
- [Java 平台 SE 8語言規格](https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.7)
- [自動包裝教學](https :// docs.oracle.com/javase/tutorial/java/data/autoboxing.html)
以上是為什麼 Java 中「Integer c = 100」和「Integer d = 100」的「c == d」回傳「true」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!