关注
(回帖有字数限制,删除了很多内容)知识储备:(详解还是要看JVM篇章)
一、垃圾回收大致分为三大类别
| | MinorGC | MajorGC | FullGC
二、可达性分析法的实现过程
1. 确定GCRoots。一般包含以下几个重要成分可能作为GCRoots
1. 虚拟机栈和本地方法栈中引用的对象
2. 堆中的字符串常量池和静态变量
3. 。。。
2. 从GCRoots开始遍历整个引用链,并将其标记为可存活。之后回收其他未被标记的即可
三、一个对象在堆的各个代中的流转过程(特殊情况除外:大对象等)
1. 对象创建之初一般在年轻代的Eden区
2. 当Eden满了之后触发MinorGC来将Eden和From区中可活对象放入To区。如果满了放入老年代。如果From中对象生存周期超过阀值则放入老年代
3. 然后调转From区和To区的定义
4. 如果遇到老年代空间满了就进行一次MajorGC。如果MajorGC之后还是不足就触发FullGC
问题一:根据不同的GC方式,扫描的区域也不同,也区别于不同的垃圾收集器。
+ Parallel:严格的年轻代和老年代,在回收的时候扫描固定区域
+ G1:针对分区算法,以及启动时配置的参数来跟踪并计算,在这个不超过最大时间间隔内回收哪些区的空间能做到最优。
问题二:一般对象创建之后就会出现在Eden区域,但是对于一些字符串常量、静态变量,则会出现在堆空间的字符串常量池中(字符串常量池是在JDK7之后才在堆中的)。对于一些Eden中存放不在的大对象可能会出现在老年代,此间可能会触发FullGC等情况
问题三:根据上述知识储备,不同的GC方式和不同的垃圾收集器,扫描的地方是不一样的,具体可以看知识储备。
查看原帖
点赞 1
相关推荐
牛客热帖
更多
正在热议
更多
# 哪些公司在招寒假实习? #
15864次浏览 196人参与
# 国企vs私企,你更想去? #
305841次浏览 2491人参与
# MiniMax求职进展汇总 #
776次浏览 23人参与
# 26年哪些行业会变好/更差 #
19146次浏览 257人参与
# 卷__卷不过你们,只能卷__了 #
12220次浏览 265人参与
# 有深度的简历长什么样? #
16759次浏览 343人参与
# 写论文的崩溃时刻 #
6611次浏览 148人参与
# 去年的flag与今年的小目标 #
10245次浏览 196人参与
# 关于春招你都做了哪些准备? #
122238次浏览 708人参与
# 机械人,你最希望上岸的公司是? #
198195次浏览 1917人参与
# 现在还是0offer,延毕还是备考 #
1256702次浏览 7922人参与
# 你不能接受的企业文化有哪些 #
12057次浏览 169人参与
# 入职第一天 #
10270次浏览 219人参与
# 租房前辈的忠告 #
350563次浏览 7445人参与
# 你都用AI做什么 #
6968次浏览 157人参与
# 你怎么看待AI面试 #
133466次浏览 745人参与
# 发工资后,你做的第一件事是什么 #
93151次浏览 311人参与
# 最难的技术面是哪家公司? #
62975次浏览 949人参与
# 腾讯音乐求职进展汇总 #
147991次浏览 1053人参与
# 华为池子有多大 #
159189次浏览 877人参与
# 一人分享一道面试手撕题 #
23230次浏览 815人参与
查看1道真题和解析