美文网首页
Java对象回收

Java对象回收

作者: gstsyyb | 来源:发表于2020-05-28 23:13 被阅读0次

对象分配流程:
1、class 加载,数据存放在元空间(已经移除的 JVM 内存之外,原因是大小不好调优,永久代触发 FullGC,所以移除了)
2、方法执行在栈上,引用存储在栈上
3、对象在堆分配,栈上引用
对象回收流程:
1、多数情况下,无 GCROOT 对象直接被回收。
2、少数对象即使没有GCROOT时,也不一定回收
①、实现finalize方法,延迟回收,对象可能被finalize方法执行时重新引用
②、非强引用也可能暂时不回收

image.png

说明:对象分配在堆上,GCRoot 在栈上或方法区等

一、通过 finalize 方法标识一种特殊处理的对象,回收时优先加入队列,延长回收,通过finalize方法可以让对象重新复活,否则则直接回收

image.png

二、软引用、弱引用、虚引用
即使对象没有被 GCRoot 引用,如果对象标识为非强引用,则暂时不用回收

image.png

相关文章

  • Java内存回收机制--Java引用的种类(强引用、弱引用、软引

    Java内存管理包括内存分配(创建Java对象)和内存回收(回收Java对象)。这两者都是JVM(Java虚拟机)...

  • java虚拟机的垃圾处理机制

    java有垃圾回收机器负责回收无用对象占用的内存资源,但是java 里的对象并非总是被垃圾回收。换句话说 1.对象...

  • 第三章(一)GC入门

    本篇主要讲述 JAVA与GC 、JAVA与引用 和JAVA对象回收流程 。 垃圾回收(Garbage Collec...

  • OutOfMemoryError异常

    Java堆溢出 Java堆的作用是存储对象实例,不断创建对象,并使垃圾回收机制不回收这些对象,当对象数量超过最大堆...

  • 我所知道的-Java垃圾回收机制

    本文章你能知道的内容: Java内存模型 Java堆 对象什么时候回收 垃圾回收算法 垃圾回收器 Java内存模型...

  • 深入学习java笔记-2.垃圾回收机制

    1.C++对比Java C++ 自己生成对象自己回收。(食堂)Java 生成的对象会有专门的GC回收。(饭店) 2...

  • Java垃圾收集

    Java垃圾收集算法 Java怎么判断一个对象是否可以回收?当一个对象没有被使用的时候,这个对象就可以回收了,那么...

  • Java对象回收

    对象分配流程:1、class 加载,数据存放在元空间(已经移除的 JVM 内存之外,原因是大小不好调优,永久代触发...

  • JAVA垃圾回收

    JAVA垃圾回收 时间:20180307 问题: 如何判定对象为垃圾对象引用计数法可达性分析法 如何回收回收策略标...

  • 垃圾收集与内存分配策略

    哪些内存需要回收 什么时候回收 如何回收 Java堆和方法区的垃圾回收 对象是否存活 引用计数算法 给对象添加一个...

网友评论

      本文标题:Java对象回收

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