垃圾收集
1、垃圾收集算法
两件事情。首先,必须检测出垃圾对象;其次,必须回收垃圾对象所使用的堆空间并还给程序。
垃圾检测通常通过建立一个根对象的集合并且检查从这些根对象开始的可触及性来实现(跟对象总是可触及的)。
--引用计数收集器:已经不在被接受使用
--跟踪收集器:追踪从根节点开始的对象引用图。
--压缩收集器:它把活动的对象越过空闲区滑动到堆的一端,在这个过程中,堆的另一端出现一个大的连续空闲区。所有被移动的对象的引用也被更新,指向新的位置。
更新被移动的对象的引用有时候通过一个间接对象引用层可以变得更简单。不直接引用堆中的对象,对象的引用实际上指向一个对象句柄表。对象句柄才指向堆中对象的实际位置,当对象被移动时只有这个句柄需要被更新为新位置。这种方法简化消除了堆碎块的工作,但每一次对象访问都带来了性能损失(两次引用解析)。
--拷贝收集器
--按代收集的收集器
--自适应收集器
--火车算法(渐进式收集算法):基于按代收集。目标是为了提供限定时间内按代收集的收集器中成熟对象空间的渐进式收集。
--堆中每个对象的三种状态:可触及的,可复活的,不可触及的,版本1.2中扩充了三个新状态:软可触及,弱可触及,影子可触及;原来的"可触及"状态被称作"强可触及"。
可触及性的三个比较弱的形式设计到1.2开始新引入的实体——引用对象,引用对象封装了其他对象的连接,被指向的对象称为引用目标。 java.lang.ref.Reference包含对应的三个子类:SoftReference,WeakReference,PhantomReference。
强引用和较弱形式的引用的区别:强引用禁止引用目标被垃圾收集,而弱引用不禁止。
垃圾收集器可以随意更改而是强可触及的任何对象的可触及性状态。
一旦某个被影子引用的对象编程影子可触及状态,垃圾收集器立即把该引用对象加入队列。垃圾收集器从不会清楚一个影子引用,所有的影子引用都必须由程序明确的清楚。如果一个对象到达了影子可触及状态,它不能再被复活。
--JVM对软引用的处理
--JVM对弱引用的处理
--JVM对影子引用的处理
- 大小: 193 KB
- 大小: 66.5 KB
- 大小: 173.5 KB
- 大小: 106.8 KB
- 大小: 185.2 KB
分享到:
相关推荐
深入理解JVM垃圾收集算法与垃圾收集器
一份JVM学习的笔记,含查看JVM运行时信息\JVM垃圾收集信息\JVM锁信息等
java之jvm学习笔记五(实践写自己的类装载器)
JVM学习笔记.docx
jVM学习笔记.ppt
从JVM内存模型、常用JVM参数、垃圾回收算法和垃圾回收器等几个角度学习JVM
java之jvm学习笔记十一(访问控制器)-源码
对jvm内存模型&垃圾收集算法&类加载机制进行了整理,读者可以作为参考进行学习和探讨,,
一.java内存结构 2 二 垃圾收集算法: 3 三 JVM参数 4 四 JVM的垃圾回收集器 7 五 常用参数设置 7
JVM学习笔记(缓慢更新).md
JVM学习笔记核心知识点整理,包含类文件加载机制,运行时数据,JVM内存模型,GC算法,垃圾收集器分类等
jvm经典笔记
第一节:学习JVM的意义和目标 1.1 意义: 1.2 目标: 第二节:JVM内存模型 1.1 概念 1.2 JVM内存模型 1.3 Heap堆内存模型 第三节:定位垃圾对象的依据 1.1 引用计数法 1.2 可达性算法 第四节:垃圾回收算法 ...
JVM 学习笔记(Java虚拟机)
深入JVM截取的一些自己认为需要了解,外加一些博客链接,还有转载的一些。不是本人所写,因为是自己看的,想着方便下大家,有些忘记转载的那篇啦,没有写转载作者,先抱歉下,不行我删除
深入Java虚拟机JVM类加载学习笔记:jvm java classloader 垃圾回收 gc
买的JVM学习资料(深入JVM内核—原理、诊断与优化),给大家分享还有自己整理的学习笔记
JVM性能调优垃圾收集算法虚拟机组成.zip
包含了jvm的视频,jvm的笔记