java jit 新生代老年代區(qū)別?
新生代老年代區(qū)別?根據(jù)代收算法定義了所謂的新一代和老一代,新一代又分為伊甸園和幸存者。此外,舊時只有三個區(qū)。數(shù)據(jù)將首先分配到Eden區(qū)域(當(dāng)然,在某些特殊情況下,如果是大對象,它將直接放入老年(大對象
新生代老年代區(qū)別?
根據(jù)代收算法定義了所謂的新一代和老一代,新一代又分為伊甸園和幸存者。此外,舊時只有三個區(qū)。數(shù)據(jù)將首先分配到Eden區(qū)域(當(dāng)然,在某些特殊情況下,如果是大對象,它將直接放入老年(大對象是指需要大量連續(xù)內(nèi)存空間的Java對象),當(dāng)Eden沒有足夠的空間時,它將觸發(fā)JVM來啟動一個小GC。如果該對象在一次小GC后幸存,并且被幸存者空間接受,它將被移動到幸存者空間。對象的年齡設(shè)置為1。每一次這個物體存活下來,年齡就會增加1。當(dāng)年齡達到一定水平(默認為15歲)時,會提升到中年。當(dāng)然,提拔老年人的年齡是可以設(shè)定的。
新生代和老年代有什么區(qū)別?
用Java創(chuàng)建的對象放在Java堆中,類的信息放在方法區(qū)中。Java堆可以分為新一代和老一代。默認情況下創(chuàng)建的對象首先放置在新一代中。當(dāng)GC收集發(fā)生時,如果對象沒有被回收,并且達到老年期,它將被轉(zhuǎn)移到老年期。