jvm
文章平均质量分 74
xyq_mxnx
这个作者很懒,什么都没留下…
展开
-
Jvm之垃圾回收算法
目录标记-清除算法标记-复制算法标记-整理算法从如何判定对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接 垃圾收集”。以下介绍的算法都是追踪式垃圾收集。标记-清除算法标记-清除算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未被标原创 2021-09-03 14:27:21 · 89 阅读 · 0 评论 -
Jvm之判断对象已死
引用计数法在对象中添加一个引用计数器,每当有一个地方引用它的时候,计数器的值就加一;当引用失效时,计数器的值就减一;任何时刻计数器为零的对象就是不可能再被使用的。原理简单,判定效率也很高,在大多数情况下是一个不错的算法。但是这个看似简单的算法有很多例外情况要考虑,必须要配合大量额外处理才能保证正确地工作,如单纯的引用计数就很难解决对象之间相互循环引用的问题,但实际可以解决,可以类似参考spring 循环依赖解决的方式 ,只是一个思路参考。可达性分析法通过 一系列称为“GC Root原创 2021-09-03 10:12:22 · 68 阅读 · 0 评论 -
jvm之对象探秘(一)
对象的创建过程创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。为对象分配空间实际上就是把一块确定大小的内存块从Java堆中划分出来。 指针碰撞:如果设Java堆中的内存是绝对规整的,所有被使用过的内存都被放在一 边,空闲的内原创 2021-08-19 23:30:28 · 68 阅读 · 0 评论