关注
(回帖有字数限制,删除了很多内容)知识储备:(详解还是要看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
相关推荐
11-13 15:20
门头沟学院 前端工程师 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
247929次浏览 2012人参与
# 学历or实习经历,哪个更重要 #
41111次浏览 300人参与
# 北方华创开奖 #
22799次浏览 259人参与
# 地方国企笔面经互助 #
2543次浏览 6人参与
# 你最想要的公司福利是? #
39995次浏览 126人参与
# 选完offer后,你后悔学本专业吗 #
10471次浏览 75人参与
# 面试题刺客退退退 #
137174次浏览 2092人参与
# 国企/银行/研究所公司爆料 #
89732次浏览 412人参与
# 应届生被毁约被毁意向了怎么办 #
27146次浏览 238人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2902次浏览 35人参与
# 机械应届生薪资要多少才合适? #
12396次浏览 60人参与
# 查收我的offer竞争力报告 #
16803次浏览 228人参与
# 校招入职后的感受 #
156957次浏览 1961人参与
# 你觉得第一学历对求职有影响吗? #
14890次浏览 121人参与
# 没有实习经历,还有机会进大厂吗 #
805104次浏览 13814人参与
# 我的工作日记 #
21196次浏览 270人参与
# 不给转正的实习,你还去吗 #
1517036次浏览 16968人参与
# 寒假躺平还是提前实习 #
58436次浏览 438人参与
# 总结:哪家公司面试体验感最差 #
25760次浏览 129人参与
# 秋招OC许愿 #
226646次浏览 1872人参与
# 如何写一份好简历 #
602184次浏览 8442人参与