请简述一下GC算法
● 請簡述一下GC算法
考察點(diǎn):JVM
參考回答:
①GC(GarbageCollection 垃圾收集),GC的對象是堆空間和永久區(qū)
②GC算法包含:引用計(jì)數(shù)法,標(biāo)記清除,標(biāo)記壓縮,復(fù)制算法。
③引用計(jì)數(shù)器的實(shí)現(xiàn)很簡單,對于一個對象A,只要有任何一個對象引用了A,則A的引用計(jì)數(shù)器就加1,當(dāng)引用失效時,引用計(jì)數(shù)器就減1。只要對象A的引用計(jì)數(shù)器的值為0,則對象A就不可能再被使用。
④標(biāo)記-清除算法是現(xiàn)代垃圾回收算法的思想基礎(chǔ)。標(biāo)記-清除算法將垃圾回收分為兩個階段:標(biāo)記階段和清除階段。一種可行的實(shí)現(xiàn)是,在標(biāo)記階段,首先通過根節(jié)點(diǎn),標(biāo)記所有從根節(jié)點(diǎn)開始的可達(dá)對象。因此,未被標(biāo)記的對象就是未被引用的垃圾對象。然后,在清除階段,清除所有未被標(biāo)記的對象。與標(biāo)記-清除算法相比,復(fù)制算法是一種相對高效的回收方法不適用于存活對象較多的場合如老年代將原有的內(nèi)存空間分為兩塊,每次只使用其中一塊,在垃圾回收時,將正在使用的內(nèi)存中的存活對象復(fù)制到未使用的內(nèi)存塊中,之后,清除正在使用的內(nèi)存塊中的所有對象,交換兩個內(nèi)存的角色,完成垃圾回收。
總結(jié)
- 上一篇: 请说明一下垃圾回收的优点以及原理
- 下一篇: 什么原因会导致minor gc运行频繁?