
一張圖了解強(qiáng)引用對(duì)象的生命周期.png
圖解:
- 需要經(jīng)歷兩次標(biāo)記,對(duì)于強(qiáng)引用來說,第一次標(biāo)記就是將不可達(dá)對(duì)象放入pendingQueue里面,第二次標(biāo)記就直接死亡了。
- finalize方法的作用:GC單純的只對(duì)java分配的內(nèi)存有用,如果想要釋放c++層的內(nèi)存,需要在Gc的執(zhí)行過程中的回調(diào)方法finalize里釋放
- 對(duì)象的finalize方法只會(huì)執(zhí)行一次
- finalize和gc是在兩個(gè)不同的線程執(zhí)行的,所以不確定性比較大,所以盡量不要用finalize方法