jvm对象存活判定算法
来源:互联网 发布:目标检测 知乎 编辑:程序博客网 时间:2024/05/27 08:13
程序计数器、虚拟机栈、本地方法栈3个区域随线程生,随线程而灭;
栈中的栈帧随着方法的进入和退出而有条不紊的执行这出栈和入栈操作。
每一个栈帧中分配多少内存基本上是在类结构确定下来是就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内不需要过多考虑回收问题,因为方法结束或者线程结束时,内存就跟着回收了。
因此我们主要学习java堆和方法区的内存分配和回收。
一、对象存活判定算法
1、引用计数算法
原理:给对象添加一个引用计数器,每当有一个地方引用它时,计数器加1;引用失效时,计数器减1;计数器为0说明可被回收。
缺点:很难解决对象相互循环引用的问题(对象相互循环引用,但其实他们都已经没有用了)。
2、可达性分析算法
java虚拟机采用的算法。
原理:通过一些列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。
在java语言中,可作为GC Roots的对象包括下面几种:
虚拟机栈(栈帧中的本地变量表)中引用的对象。
方法区类静态属性引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI引用的对象。
0 0
- jvm对象存活判定算法
- Java对象存活判定算法
- 【005】【JVM——Hotspot算法实现存活对象判定和垃圾收集】
- JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收
- JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收
- JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收
- JVM之对象存活的算法
- jvm-判断对象是否存活的算法
- [深入理解Java虚拟机]第三章 对象存活判定算法
- JVM 运行时数据区及GC机制(补)—— 对象存活的判定
- 深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法
- 深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法
- jvm判断对象是否存活
- 《深入理解JAVA虚拟机》学习笔记(二)JAVA垃圾收集之对象存活判定算法
- JVM之判断一个对象是否存活
- JVM判断对象是否存活的方法
- JVM学习(3)-判断对象存活
- jvm读书笔记之对象是否存活
- HDU 2035 人见人爱A^B(快速幂)
- 用javamail发送带附件的邮件
- hdu2094产生冠军
- Android开发之多线程编程Thread和Runnable使用
- eclipse启用tomcat报服务被占用
- jvm对象存活判定算法
- 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)
- C语言之内存分配与释放:malloc, calloc, realloc & free
- iOS学习之——常用的枚举类型以及名词的含义(持续更新)
- ubuntu12.04 insmod&rmmod出现Error:Device or resource busy
- 大整数运算之加减乘除
- ntp如何手动更新时间
- 二叉树的创建、销毁、各种递归、循环遍历方法(可运行测试)
- Ubuntu14.0 nginx+php+mysql环境的搭建