java中对象生命周期

2020-07-03  本文已影响0人  陈桐Caliburn

在Java中,对象的生命周期包含下面几个阶段

1. 创建阶段(Created)
2. 应用阶段(In Use)
3. 不可见阶段(Invisible)
4. 不可达阶段(Unreachable)
5. 收集阶段(Collected)
6. 终结阶段(Finalized)
7. 对象空间重分配阶段(De-allocated)
生命周期

说明

1.创建阶段(Created)
在创建阶段系统通过以下的几个步骤来完毕对象的创建过程

一旦对象被创建,并被分派给某些变量赋值,这个对象的状态就切换到了 应用阶段。

2.应用阶段(In Use)
对象至少被一个强引用持有着。

3.不可见阶段(Invisible)
当一个对象处于不可见阶段时,说明程序本身不再持有该对象的任何强引用,虽然该这些引用仍然是存在着的。
简单说就是程序的执行已经超出了该对象的作 用域了。

3.不可见阶段(Invisible)
不再持有该对象的任何强引用
即程序的执行已经超出了该对象的作用域。

4.不可达阶段(Unreachable)
GCRoots不可达

5.收集阶段(Collected)
当垃圾回收器发现该对象已经处于“不可达阶段”并且垃圾回收器已经对该对象 的内存空间重新分配做好准备时,则对象进入了“收集阶段”。如果该对象已经重写了 finalize()方法,则会去执行该方法的终端操作。

6.终结阶段(Finalized)
当对象执行完 finalize()方法后仍然处于不可达状态时,则该对象进入终结阶段。在该阶段是等待垃圾回收器对该对象空间进行回收。

7.对象空间重分配阶段(De-allocated)
垃圾回收器对该对象的所占用的内存空间进行回收或者再分配了,则该对象彻底消失了

上一篇 下一篇

猜你喜欢

热点阅读