![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java虚拟机学习
大老李superLi
这个作者很懒,什么都没留下…
展开
-
垃圾回收过程
确认对象死亡 1、引用计数法(主流虚拟机不使用该算法) 在对象中创建一个引用计数器,每当对象被引用的时候,引用计数器加1,每当对象失去引用时,引用计数器减1。当引用计数器数值为0时,该对象则视为死亡。该算法虽然简单高效,但是有一个致命的缺陷–当两个对象互相引用的时候,这两个对象的引用同时置空,他们的引用也不会为0,因为他们之间存在互相引用。代码如下://该情况下无法被使用引用计数器的虚拟机...原创 2020-03-16 14:42:09 · 157 阅读 · 0 评论 -
对象创建时的内存分配、内存布局及对象定位
1、对象创建时内存分配 1.1、对象所属类的加载检测 虚拟机遇到字节码new指令时,会检测该类是否已经被加载、解析和初始化。如果没有则进行相关的加载操作。 1.2、内存分配 该阶段相当于在堆内存中划分出一块大小确定的内存。内存的分配方式和垃圾回收器的实现方式有关,取决于垃圾回收器是否具备空间压缩整理能力。分配方式有: 1.2.1、指针碰撞:堆内存如果是绝对规整的,即...原创 2020-03-03 14:46:12 · 367 阅读 · 0 评论 -
Java虚拟机内存区域及可能发生的内存相关异常
1、运行时数据区域 1.1、程序计数器 该区域只占用内存的很小一块,该区域是线程私有的。即每个线程都有一块属于自己的程序计数器。该区域的作用相当于一个代码执行的指示器,字节码解释器在工作的时候通过改变该数值来选取下一条要执行的字节码,是程序控制...原创 2020-02-28 17:09:26 · 145 阅读 · 0 评论