垃圾回收是對(duì)堆內(nèi)存里的沒(méi)有任何引用指向的對(duì)象進(jìn)行回收
垃圾確定方式:1.引用計(jì)數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? 2.正向可達(dá)(使用這個(gè))
垃圾回收算法:
1.標(biāo)記-清除(Mark-Sweep)
? ? ? 此算法執(zhí)行分兩階段障簿。第一階段從引用根節(jié)點(diǎn)開(kāi)始標(biāo)記所有被引用的對(duì)象闲擦,第二階段遍歷整個(gè)堆蟀苛,把未標(biāo)記的對(duì)象清除辜伟。此算法需要暫停整個(gè)應(yīng)用,同時(shí)疫稿,會(huì)產(chǎn)生內(nèi)存碎片
2.復(fù)制(Copying)
? ? ? 將內(nèi)存分成兩份鸵隧,每次GC都會(huì)重新整理使用的一半的內(nèi)存區(qū)域,并賦值給另一半荒典,效率提高酪劫,但是浪費(fèi)了內(nèi)存。
3.標(biāo)記-整理(Mark-Compact)
? ? ? 結(jié)合了前兩個(gè)算法的優(yōu)點(diǎn)寺董,第一步標(biāo)記覆糟,第二步整理。
4.分代(Generational Collecting)
? ? ? 基于對(duì)對(duì)象生命周期分析后得出的垃圾回收算法遮咖。把對(duì)象分為年青代滩字、年老代、持久代御吞,對(duì)不同生命周期的對(duì)象使用不同的算法