![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解JVM
keygod1
这个作者很懒,什么都没留下…
展开
-
【深入理解JVM】垃圾收集算法
标记-清除算法普通的标记-清除算法是最基础的垃圾收集算法。分为“标记和收集两个阶段”标记:标记出需要回收的对象,在标记完成后统一回收。标记靠的是前一文所讲的判断对象存活算法进行标记的。清除:清除内存区域。缺点:效率低,标记和清除效率都不高。空间问题: 清除后内存区域不连续,产生过多垃圾碎片,导致后续分配大对象时容易发生内存不足而触发另一次垃圾收集动作。后续的收集算法都是标记-清除...原创 2020-03-05 22:22:13 · 125 阅读 · 0 评论 -
【深入理解JVM】强引用,软引用,弱引用,虚引用的区别
为何要使用多种引用方式JDK2.0 之前 ,只有强引用一种,当一个对象被引用时,此对象就永远无法被回收。但是实际业务过程中,有些对象是不那么重要的,我们希望在内存紧张的时候,被引用的情况下,也可以被回收,比如 缓存对象。JDK2.0 后。JAVA 对引用的概念进行了扩充,将引用分为强引用,软引用,弱引用,虚引用4种,这4种引用强度逐渐减弱。强引用强引用是指在程序代码里普遍存在的,类似“A ...原创 2020-03-01 12:00:41 · 332 阅读 · 0 评论 -
【深入理解JVM】 判断对象存活算法
概要JVM 垃圾收集之前需要判断哪些对象需要回收,下面介绍几种常用的判断对象是否存活算法。引用计数法(Reference Counting)顾名思义,引用计数法就是对引用进行计数,引用对象+1计数,引用失效时-1,当计数为0时,就是对象没有被使用,可以被回收。优点:实现简单,并且判定效率也高。缺点:无法解决互相引用的问题。目前没有一款JVM采用此种算法。例如 A 对象持有 B 对象的引...原创 2020-02-26 20:42:46 · 160 阅读 · 0 评论