1. Serial 與 Parallel GC之間的不同之處奢讨?(需要看诗赌,不懂)
Serial 與 Parallel 在GC執(zhí)行的時(shí)候都會(huì)引起 stop-the-world升敲。它們之間主要不同 serial 收集器是默認(rèn)的復(fù)制收集器蝴罪,執(zhí)行 GC 的時(shí)候只有一個(gè)線程纵势,而 parallel 收集器使用多個(gè) GC 線程來執(zhí)行畜吊。
2. java GC是在什么時(shí)候?
- 程序員不能具體控制時(shí)間泽疆,系統(tǒng)在不可預(yù)測的時(shí)間調(diào)用System.gc()函數(shù)的時(shí)候;當(dāng)然可以通過調(diào)優(yōu)玲献,用NewRatio控制newObject和oldObject的比例殉疼,用MaxTenuringThreshold 控制進(jìn)入oldObject的次數(shù),使得oldObject 存儲(chǔ)空間延遲達(dá)到full gc,從而使得計(jì)時(shí)器引發(fā)gc時(shí)間延遲OOM的時(shí)間延遲青自,以延長對(duì)象生存期株依。
對(duì)什么東西?
- 超出了作用域或引用計(jì)數(shù)為空的對(duì)象;從gc root開始搜索找不到的對(duì)象延窜,而且經(jīng)過一次標(biāo)記恋腕、清理,仍然沒有復(fù)活的對(duì)象逆瑞。
做了什么事情荠藤?
- 刪除不使用的對(duì)象,回收內(nèi)存空間获高;運(yùn)行默認(rèn)的finalize,當(dāng)然程序員想立刻調(diào)用就用dipose調(diào)用以釋放資源如文件句柄哈肖,JVM用from survivor、to survivor對(duì)它進(jìn)行標(biāo)記清理念秧,對(duì)象序列化后也可以使它復(fù)活淤井。