Java 記憶體管理:了解堆產生
Java 堆是執行時分配和管理物件的記憶體空間。它進一步分為幾代:年輕代、老年代和永久代,每個世代都有特定的目的並相互影響。
年輕代
年輕代是第一代分配物件的地方。它進一步分為:
老年代(Tenured Generation )
在倖存者空間中多次Minor GC 中倖存下來的物件將被提升到老年代。這是長期存在的物件所在的位置,例如代表靜態資料或持久實體的物件。
永久代
與其他世代不同,永久代不屬於堆的。它保存與類別和方法相關的元資訊的非堆記憶體。在 Java 8 中,永久代被刪除,元資訊現在儲存在稱為元空間的單一空間中。
各世代之間的互動
各代是相連的透過垃圾收集週期:
綜上所述,年輕代用於短命對象,老年代包含長命對象,永久代(或Java 8中的元空間)儲存與類別和方法相關的非堆資料。當物件老化並且不再需要時,垃圾收集週期會在這些代中移動物件。
以上是Java 記憶體管理如何與堆生成一起工作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!