
GC系列
GC系列
YYAugenstern
大佬都是日积月累的勤学苦练造就的!在通往大佬的路上欢迎各位朋友 点赞 + 关注 + 评论 + 转发 + 收藏!让我们每天进步一点点,用代码改变世界,改变自己和家人的生活,为推动信息化社会进步贡献一份自己的绵薄之力!路漫漫其修远兮,唯有脚踏实地,勇往之前才能到达心中的彼岸。加油,每天进步一点点,终有一天你会成为你想成为的人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
系列八、四大垃圾算法PK
(5)基于上面的考虑,老年代一般是由标记清除或者标记清除+标记整理的混合实现,以HotSpot中的CMS回收器为例,CMS是基于Mark-Sweep实现的,对于对象的回收率很高,而对于碎片问题,CMS采用的是基于Mark=Compact算法的Serial Old回收器作为补偿措施:当内存回收不佳时,将采用Serial Old执行Full GC以达到对老年代的内存整理。内存效率:复制算法 > 标记清除算法 > 标记整理算法(此处的效率只是简单的对比时间复杂度,实际情况不一定如此);原创 2023-11-19 10:20:37 · 176 阅读 · 0 评论 -
系列七、GC垃圾回收【四大垃圾算法-标记压缩算法】
在整理压缩阶段,不再对标记的对象回收,而是通过所有存活对象都向一端移动。可以看到,标记的存活对象将会被整理,按照内存地址依次排列。如此一来,当我们需要给新对象分配内存时,JVM只需要持有一个内存的起始地址即可,这比维护一个空闲列表显然少了许多开销。标记整理算法不仅可以弥补标记清除算法中,内存区域分散的缺点,也消除了复制算法当中,内存减半的高额代价。原创 2023-11-19 09:26:33 · 245 阅读 · 0 评论 -
系列六、GC垃圾回收【四大垃圾算法-标记清除算法】
标记清除算法分为两个阶段,即:标记和清除两个阶段,先标记出要回收的对象,然后统一回收这些对象。形如:老年代一般是由标记清除或者标记清除 + 标记压缩的混合实现。原创 2023-11-19 08:43:19 · 730 阅读 · 0 评论 -
系列五、GC垃圾回收【四大垃圾算法-复制算法】
复制算法主要发生在新生代,发生在新生代的垃圾回收也被叫做Minor GC。原创 2023-11-17 12:55:20 · 726 阅读 · 1 评论 -
系列四、GC垃圾回收【四大垃圾算法-引用计数法】
Java中,引用和对象是有关联的,如果要操作对象则必须要用引用进行。因此判断一个对象是否可以被回收,很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。简单来讲就是给对象中添加一个引用计数器,每当一个地方引用它,计数器的值就加1,每当一个引用失效时,计数器的值就减1。任何时刻当计数器的值为零的对象,就是不可能再被使用的,那么这个对象就是可以回收的对象。但是,主流的Java虚拟机里面都没有使用这种算法,最主要的原因就是就是它很难解决对象之间的相互循环引用的问题。原创 2023-11-17 11:31:10 · 143 阅读 · 0 评论 -
系列三、GC垃圾回收【总体概览】
JVM进行GC时,并非每次都对上面的三个内存区域(新生区、养老区、元空间/永久代)一起回收,大部分回收的是新生区里边的垃圾,因此GC按照回收的区域又分为了两种类型,一种是发生在新生区的普通GC(Minor GC),一种是发生在养老区的全局GC(Major GC或者Full GC)原创 2023-11-17 11:09:41 · 219 阅读 · 0 评论 -
系列二、垃圾
为了解决引用计数法存在的循环引用问题,Java使用了可达性分析的方法。基本思路就是通过一系列名为【GC Roots】 的对象作为起始点,从这个被称为【GC Roots】的对象开始向下搜索,如果一个对象到【GC Roots】没有任何引用链相连接时,则说明此对象不可用。也即给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可到达的)对象就被判定为存活,否则就被判定为死亡。说明:所谓【GC Roots】,其实就是一组必须活跃的引用。原创 2023-11-17 10:53:26 · 100 阅读 · 0 评论 -
系列一、GC简介
GC是垃圾回收的意思。次数上频繁收集Young区,少收集Old区,基本不动元空间。原创 2023-11-17 10:11:34 · 125 阅读 · 0 评论