目录

  • 1. 创建阶段(Created)
  • 2. 应用阶段(In Use)
  • 3. 不可见阶段(Invisible)
  • 4. 不可达阶段(Unreachable)
  • 5. 收集阶段(Collected)
  • 6. 终结阶段
  • 7. 对象空间的重新分配

1. 创建阶段(Created)

  • 为对象分配存储空间
  • 开始构造对象
  • 从父类到子类对static成员进行初始化
  • 父类成员变量按照顺序初始化,递归调用父类的构造方法
  • 子类成员变量按照顺序初始化,子类构造方法调用
    一旦对象被创建,并有某个引用指向它,这个对象的状态就切换到了应用阶段(In Use)

2. 应用阶段(In Use)

对象至少被一个强引用持有并且对象在作用域内

3. 不可见阶段(Invisible)

程序本身不再持有该对象的任何强引用,但是这些引用可能还存在着;
一般具体是指程序的执行已经超过该对象的作用域

4. 不可达阶段(Unreachable)

该对象不再被任何强引用所持有;
可能仍被JVM等系统下的某些已经装载的惊天变灵或者线程或JNI所持有,这些特殊的强引用被称为GC root,这种情况容易导致内存泄露,无法被回收

5. 收集阶段(Collected)

对象不可达,并且GC已经准备好对该对象占用的内存空间重新分配的时候,处于手机阶段。
如果重写了finazlie()方法,则会去执行该方法。

尽量不要重写finazlie()方法,因为有可能影响JVM的对象分配与回收速度或者可能造成该对象的再次复活

6. 终结阶段

当对象执行完finalize()方法之后,仍然处于不可达状态时,则该对象进入终结阶段。在这个阶段,内存空间等待GC进行回收

7. 对象空间的重新分配

GC对该对象占有的内存空间进行回收或者再分配,该对象彻底消失

Java对象生命周期相关推荐

  1. java对象生命周期_Java对象生命周期和类生命周期

    原标题:Java对象生命周期和类生命周期 作者:彭空空 链接:https://www.jianshu.com/p/25ea857ba78b 导读 对象的生命周期 类的加载机制 类的生命周期 类加载器 ...

  2. Java 对象生命周期

    Java 对象生命周期 一直对Java对象的实例化.对象.对象的引用.堆 栈存放的内容迷惑不解.看了 Java编程思想,理解似乎又深了一层. 对象和对象的引用 Java 编程思想中,把对象的引用比喻成 ...

  3. Java 对象生命周期和类生命周期

    Java 对象生命周期 在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation).应用阶段(Using).不可视阶段(Invisible).不可到达阶段(Unreach ...

  4. Java中的垃圾回收与对象生命周期

    转载自   Java中的垃圾回收与对象生命周期 1. 垃圾回收 垃圾回收是Java程序设计中内存管理的核心概念,JVM的内存管理机制被称为垃圾回收机制. 一个对象创建后被放置在JVM的堆内存中,当永远 ...

  5. 容器,对象生命周期管理的基石

    2019独角兽企业重金招聘Python工程师标准>>> 郑重申明:包括本文在内的很多技术文章,大多出自山外高人,而非Fans. Fans暂时没有能力写作优秀的技术文章,Fans只是转 ...

  6. SSH学习-Hibernate对象生命周期管理

    Hibernate对象就是java中的实体对象,管理就是在实体对象的生命周期内被Hibernate的操作,Hibernate对象的生命周期其实就是实体对象的生命周期(从创建到最后被GC回收),期间对实 ...

  7. java resume过时方法_面试官没想到,一个 Java 线程生命周期,我可以扯半小时

    面试官:你不是精通 Java 并发吗?从基础的 Java 线程生命周期开始讲讲吧. 好的,面试官.吧啦啦啦... 如果要说 Java 线程的生命周期的话,那我觉得就要先说说操作系统的线程生命周期 因为 ...

  8. [js] 说说你对js对象生命周期的理解

    [js] 说说你对js对象生命周期的理解 一切皆对象 咱们经常听到JS中"一切皆对象"?有没有问想过这是什么意思?其它语言也有"一切皆对象"之说,如Python ...

  9. Spring IoC容器与Bean管理18:Bean对象的作用域及生命周期三:对象生命周期;

    说明: (1)本篇博客主要根据案例阐述对象的声明周期: (2)其中,比较重要的是注意下这个对应关系: (3)还有就是调用[registerShutdownHook()]销毁IoC容器: 目录 一:be ...

最新文章

  1. Django ORM操作
  2. iOS中KVO模式的解析与应用
  3. c++纯虚函数在父类中调用的规避
  4. 风电功率预测matlab,一种基于二十四节气的风电功率预测方法与流程
  5. unity游戏框架学习-框架结构
  6. 什么是物联网的信息服务器,物联网介绍 | 5分钟看懂什么是IoT物联网
  7. 小明爱跑步-扩展-多个对象属性之间互不干扰
  8. 深度解析:会用Excel,还有必要学Python吗?
  9. matplotlib.pyplot.bar()条形图
  10. 嘴上说着喜爱Java 9 ,身体却诚实地拥抱了Java 8
  11. parallels desktop big sur 网络_初中生数学网络学习哪个好
  12. 运行支持kubernetes原生调度的Spark程序
  13. 2018 年React 将独占前端框架鳌头
  14. delphi formshow 刷新_OPPO K7x部分配置和外观公布90Hz刷新率11·4发布
  15. 简述hdfs工作原理_HDFS原理篇
  16. 通过软件调整显示器的扩展、复制、显示器输入源
  17. QQ应用自动登录最小化功能
  18. matlab 傅里叶变换代码,傅里叶变换的原理及matlab实现.doc
  19. Java夜未眠(蔡学镛)
  20. SQL server 中的dbo、guest

热门文章

  1. 20145231 《信息安全系统设计基础》期中总结
  2. ASP.NET MVC3中的ViewBag动态性
  3. 别人总结的一些git教程大全
  4. 全国计算机等级考试题库二级C操作题100套(第65套)
  5. python递归面试题_汉诺塔问题其实很简单 Python 递归经典面试题
  6. 一些比较少用但比较有用的linux命令备忘
  7. Dubbo使用启动时检查 check=“true“
  8. 编程式事务和声明式事物
  9. java过滤器的原理_Java 三大器之过滤器(Filter)工作原理
  10. Github上排名前五的开源网络监控工具