1. 程式人生 > >Java對象在內存中的狀態

Java對象在內存中的狀態

引用 java對象 之前 恢復 整理 變量 bsp () 一個

可達的/可觸及的

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

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

可恢復的

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

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

不可達的:

Java對象不被任何變量引用,且系統在調用對象的finalize()方法後依然沒有使該對象編程可達(該對象依然沒有被變量引用),那麽該對象將編程不可達狀態。

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

Java對象在內存中的狀態