美文网首页
JVM中对象的生命周期

JVM中对象的生命周期

作者: 冷月成双 | 来源:发表于2019-04-11 23:41 被阅读0次

JVM运行空间中,对象的整个生命周期大致分为7个阶段:

1.创建阶段

    1.1 对象的创建过程:

    1)对象分配内存存储空间

    2)开始构造对象

    3)递归调用其超类的构造方法

    4)进行对象实例初始化与变量初始化

    5)执行构造方法体

    1.2 创建对象时的几个关键应用规则

    1)避免在循环体中创建对象,即使该对象占用内存空间不大。

    2)尽量及时使对象符合垃圾回收标准

    3)不要采用深的继承层次

    4)访问本地变量优于访问类中的变量

    5)不要对一个对象初始化多次这样会带来较大的内存开销,降低系统性能

2.应用阶段

    对象的应用阶段,对象具备下列特征:

    1)系统至少维护着对象的一个强引用

    2)所有对该类对象的引用全部是强引用(除非我们显示地使用了:软引用、弱引用或虚引用)

强引用(Strong Reference) 是指JVM内存管理器从根引用集合(Root Set) 出发遍寻堆中所有到达对象的路径.当达到某对象的任意路径都不含有引用对象时,对这个对象的引用就被称为强引用.

软引用(Soft Reference)的主要特点是具有较强的引用功能.只有当内存不够的时候,才回收这类内存,因此内存足够的时候这类内存通常不回收.

弱引用(Weak Reference)对象与Soft引用对象的最大不同就在于:GC在进行回收时,需要通过算法检查是否回收Soft引用对象,而对于Weak引用对象,GC总是进行回收.

虚引用(Phantom Reference)的用途较少,主要用于辅助finalize函数的使用.Phantom对象指一些执行完了finalize函数,并为不可达对象,但是还没有被GC回收的对象.这种对象可以辅助finalize进行后期的回收工作,我们通过覆盖Reference 的 clear() 方法,增强资源回收机制的灵活性.

3. 不可视阶段

当一个对象处于不可视阶段,说明我们在其他区域的代码中已经不可以引用他,其强引用已经消失.

4. 不可达阶段

处于不可达阶段的对象在虚拟机的对象引用跟集合中再也找不到直接或间接的强引用,这些对象一般是所有线程的栈中的临时变量,所有已装载的类的静态变量或者是对本地代码(JNI)的引用.

5. 可收集阶段, 终结阶段,释放阶段

当对象处于这三个阶段时该对象可能处于下面三种情况:

1)回收器发现该对象已经不可达

2)finalize方法已经被执行

3)对象空间已经被重用

相关文章

  • JVM-垃圾回收机制

    JVM垃圾回收机制 分代垃圾回收 不同的对象生命周期不同。与业务信息有关的对象生命周期较长,如Http请求中的se...

  • JVM中对象的生命周期

    JVM运行空间中,对象的整个生命周期大致分为7个阶段: 1.创建阶段 1.1 对象的创建过程: 1)对象分...

  • JVM-分代模型

    一、对象生命周期 1. 对象生命周期 大部分对象都是存活周期极短的 少数对象是长期存活的 二、JVM分代模型 1....

  • JVM

    JVM组成 jvm由类加载器+内存+执行引擎 JVM内存区域 堆 线程共享 存储对象 虚拟机栈 线程私有,生命周期...

  • JVM中的对象生命周期

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

  • 10-年轻代和老年代

    年轻代和老年代 存储在JVM中的Java对象可以被划分为两类: ➷ 一类是生命周期较短的瞬时对象,这类对象的创建和...

  • spring bean生命周期

    所谓的生命周期其实是状态变化 jvm对象状态变化 简略带过jvm对象的生成到销毁状态, 只做简单了解 分配内存地址...

  • jvm运行时内存溢出

    JVM运行时数据区一、 线程私有的数据区 内存泄露:被分配的对象可达但不无用长生命周期的对象持有短生命周期的对象修...

  • 2018-03-09 GC垃圾回收机制学习日记一

    看到Java中的GC垃圾回收机制,必定离不开Java JVM中的内存模型及Java对象的生命周期,学习GC机制前我...

  • JVM-对象内存布局

    jvm-对象内存布局 对象内存结构概述 对象的创建过程: jvm将对象所在的class文件加载到方法区中 jvm读...

网友评论

      本文标题:JVM中对象的生命周期

      本文链接:https://www.haomeiwen.com/subject/ujifwqtx.html