天天看點

Java對象在記憶體中的狀态

可達的/可觸及的

Java對象呗建立後,如果被一個或者多個變量引用,那就是可達的,即從根節點可以觸及到這個對象。

其實就是從根節點掃描,隻要這個對象在引用鍊中,那就是可觸及的。

可恢複的

Java對象不再被任何變量引用就進入了可恢複狀态。

在回收該對象之前,該對象的finalize()方法進行資源整理,如果在finalize()方法中重新讓變量引用該對象,則該對象再次變為可達狀态,否則該對象進入不可達狀态。

不可達的:

Java對象不被任何變量引用,且系統在調用對象的finalize()方法後依然沒有使該對象程式設計可達(該對象依然沒有被變量引用),那麼該對象将程式設計不可達狀态。

當Java對象處于不可達狀态時,喜用才會真正回收該對象占有的資源。

心再堅強也不要獨自飛翔

繼續閱讀