JVM工作原理
x.yao
既然选择了远方,便只顾风雨兼程.
展开
-
JVM——深究HotSpot虚拟机中对象的创建和储存布局
一.对象的创建 在虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载,解析和初始化过。如果没有,就要先执行相应的类加载过程。 在类加载检查通过后,接下来虚拟机将为新生对象分配内存,对象所需内存大小在类加载完成后便可以完全确认。为对象分配空间就相当于将一块确定大小的内存从Java堆中划分出来,划分空间方式...原创 2020-02-09 15:20:42 · 175 阅读 · 0 评论 -
JVM------垃圾收集算法
整理自《深入理解Java虚拟机》 垃圾收集算法 1.标记——清除算法2.复制算法3.标记——整理算法4.分代收集算法 一.标记——清除算法 此算法分为“标记”和“清除”两个阶段:①首先标记出所有需要回收的对象②将标记的对象进行统一回收 此算法的不足之处:①效率问题,标记和清除两个过程效率都不高②空间问题,标记清除之后会产生大量不连续的空间,导...原创 2020-02-08 20:53:41 · 73 阅读 · 0 评论 -
Java---垃圾收集器对对象“死活”的判断
程序计数器,本地方法栈,虚拟机栈3个区域都是随线程而生,随线程而灭。所以在这几个区域内就不需要过多的考虑回收问题,当方法结束时或者线程结束时,内存也就进行了回收。而堆则是垃圾收集(GC)器管理的主要区域。 那么怎么判断对象是“死”还是“活”呢? 一.引用计数算法 给对象中添加一个引用计数器,当有一个地方引用它时,计数器就加1,相反,当对象失去一个引用时,计数器就减1,如...原创 2019-11-23 17:02:29 · 108 阅读 · 0 评论