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