Java对象生命周期

Java对象生命周期图

创建阶段(Created)

  • 分配存储空间
  • 开始构造对象
  • 父类到子类依次初始化类变量
  • 父类成员初始化,父类构造函数初始化
  • 子类成员初始化,子类构造函数初始化

应用阶段(In Use)

对象被一个或多个强引用持有,并且在作用域内

不可见阶段(Invisible)

其它区域已经不可以再引用它,本地变量超出了可见范围

void test(){
    try{
        Object a = new Object();
    }catch(Exception e){}
    a.clone(); // 该区域a不可见
}

不可达阶段(Unreachable)

不再被任何强引用所持有

收集阶段(Collected)

对象不可达,并且垃圾回收器已经对该对象的内存空间重新分配做好准备时

终结阶段(Finalized)

对象执行完finalize方法后,等待垃圾回收器对对象空间进行回收

对象重新分配阶段(Deallocated)

垃圾回收器对该对象的所占用的内存空间进行回收或者再分配了,则该对象彻底消失了,此时称为对象空间重新分配阶段

子父类代码执行顺序图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,144评论 0 62
  • 一 、java虚拟机底层结构详解 我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、...
    葡萄喃喃呓语阅读 1,527评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 【常常有朋友跟我说:“我觉得我运气不好,找了一个不靠谱的老公,一个不好的老板,一个不佳的同事。” “要是没有孩子拖...
    依蔓雨薇阅读 462评论 0 1
  • 爱是动词(一) 在《少有人走的路(一)》第二部分,作者专题论述“爱” 作者写到,“爱,不是感觉”,“爱是实际行动,...
    薇薇安的30天阅读 327评论 1 0