首頁 > Java > java教程 > 為什麼 Java 中「Integer c = 100」和「Integer d = 100」的「c == d」回傳「true」?

為什麼 Java 中「Integer c = 100」和「Integer d = 100」的「c == d」回傳「true」?

DDD
發布: 2024-12-08 00:43:16
原創
855 人瀏覽過

Why does `c == d` return `true` for `Integer c = 100` and `Integer d = 100` in Java?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板