深入理解jvm虚拟机-判断对象是否存活
2018-03-07 10:30
501 查看
引用计数算法: 给对象中添加一个引用计数器, 每当有一个地方引用它时, 该对象中的引用计数器就加1; 当引用失效时, 计 数器就减1。当引用计数器的数值为0 时, 就表示该对象是不可能在使用的, 就可交给GC回收。
但是主流的java虚拟机里没有使用引用计数算法来管理内存。其中最主要的原因是很难解决对象之间相互循环引用的问题。
可达性分析算法: 通过一系列的称为“GC Roots”的对象作为起始点, 从这些点开始向下搜索,搜索所走的路径称为称为引 用链, 当一个对象到GCRoots没有任何引用链相连的话, 表示该对象是不可用的,交给GC回收。
在java中,作为GC Roots回收的对象:
1. 虚拟机栈(栈帧中的本地变量表)中引用的对象。
2. 方法区中类静态属性引用的对象。
3. 方法区中常量引用的对象。
4. 本地方法栈中 JNI (即一般说的Native方法) 引用的对象。
但是主流的java虚拟机里没有使用引用计数算法来管理内存。其中最主要的原因是很难解决对象之间相互循环引用的问题。
可达性分析算法: 通过一系列的称为“GC Roots”的对象作为起始点, 从这些点开始向下搜索,搜索所走的路径称为称为引 用链, 当一个对象到GCRoots没有任何引用链相连的话, 表示该对象是不可用的,交给GC回收。
在java中,作为GC Roots回收的对象:
1. 虚拟机栈(栈帧中的本地变量表)中引用的对象。
2. 方法区中类静态属性引用的对象。
3. 方法区中常量引用的对象。
4. 本地方法栈中 JNI (即一般说的Native方法) 引用的对象。
相关文章推荐
- 深入理解Java虚拟机之判断对象是否存活
- 深入理解JVM--第三章--判断对象是否存活(引用计数算法、可达性分析算法,最终判定)
- 深入理解Java虚拟机笔记---判断对象是否存活
- 深入理解Java虚拟机笔记---判断对象是否存活
- Java垃圾回收(一)对象存活状态判断---深入理解Java虚拟机
- 深入理解 JVM 系列:判断对象的存活
- 深入理解JVM03--判断对象是否存活(引用计数算法、可达性分析算法,最终判定),Eclipse设置GC日志输出,引用
- 深入理解jvm虚拟机-对象的创建过程
- 深入理解Java虚拟机之对象存活算法的实现
- jvm判断对象是否存活
- 深入理解JVM:HotSpot虚拟机对象探秘
- 深入理解JVM(二)--HotSpot虚拟机对象探秘
- 深入理解JVM:HotSpot虚拟机对象探秘
- 深入理解Java虚拟机之对象存活算法的实现(2)
- 深入理解JVM(三)--对象存活判定算法
- JVM中判断对象是否存活的方法
- 深入理解Java虚拟机笔记---引用类型和对象是否死亡
- 深入理解JVM(二):hotspot虚拟机对象
- 深入理解Java虚拟机---(4)对象是否“死亡”的判断和GC的相关收集算法
- JVM——引用计数算法和可达性分析算法——判断对象是否需要被回收