首頁 > Java > java教程 > Java 靜態成員儲存在記憶體中的什麼位置?

Java 靜態成員儲存在記憶體中的什麼位置?

Susan Sarandon
發布: 2024-12-04 08:37:11
原創
439 人瀏覽過

Where Are Java Static Members Stored in Memory?

Java 中靜態成員儲存在記憶體中的什麼位置?

靜態方法和變量,例如提供的 Java 程式碼片段中演示的那些,儲存在 Oracle 的 Hotspot JVM 和其他基於它的堆內存的 PermGen 部分中。 PermGen 保存元數據,包括類別相關數據。

儲存機制:

  • 靜態變數:僅其技術值(原語或引用)儲存在 PermGen 中。如果靜態變數引用一個對象,則該物件本身駐留在標準堆區域中,而不是 PermGen。
  • 靜態方法: 所有方法(包括靜態方法)都會作為反射的一部分佔用 PermGen 中的空間資料。

重要注意:

  • PermGen 僅用於元資料;靜態欄位儲存在常規堆中。
  • Eclipse OpenJ9 和其他 JVM 可能沒有 PermGen 或 Metaspace。
  • 依賴 Finalize() 進行垃圾回收是不可靠的。由 JVM 來決定垃圾回收時間和合格的物件。
  • 單獨將靜態變數設為 null 可能無法保證從堆中刪除物件。
  • 程式碼和資料的儲存方式可能​​會有所不同取決於 JVM 實作和版本。

以上是Java 靜態成員儲存在記憶體中的什麼位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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