关注
(回帖有字数限制,删除了很多内容)知识储备:(详解还是要看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
相关推荐
牛客热帖
更多
- 1... 一个普通人在985学计算机的四年1.0W
- 2... 每天辣么多AI新项目,自己怎么跟得上呢4258
- 3... 挣钱虽不多,但也弥补了校园时期的遗憾4167
- 4... 面试官视角聊聊,怎么讲清楚自己做的AI项目3049
- 5... 快手年终发得又多又早,这波是我羡慕了3011
- 6... 人均AI Coding后,程序员面试还有必要问八股吗2907
- 7... 就算做开发用AI工具,面试也逃不掉八股和手撕2874
- 8... 大厂提前实习对AI开发的新感悟2869
- 9... 互联网大厂的AI相关岗位全面介绍2857
- 10... J人永远闲不下来于是去提前实习2821
正在热议
更多
# 赚钱的意义在这一刻具象化 #
7518次浏览 176人参与
# 快手年终开大包 #
1604次浏览 38人参与
# 今年春招是金一银二嘛? #
15278次浏览 180人参与
# AI求职实录 #
9016次浏览 270人参与
# 没关系,至少我的__很曼妙 #
6536次浏览 123人参与
# 初创公司值得加入吗? #
37417次浏览 217人参与
# 抛开难度不谈,你最想去哪家公司? #
8513次浏览 166人参与
# 为什么有人零实习也能进大厂? #
8514次浏览 189人参与
# 牛客吐槽大会 #
6017次浏览 115人参与
# 1月小结:你过的开心吗? #
3110次浏览 62人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
11287次浏览 270人参与
# 你的第一家实习公司是什么档次? #
6593次浏览 97人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
5706次浏览 175人参与
# 你的landing期是如何度过的? #
11671次浏览 225人参与
# 除了Java,最推荐学什么技术? #
9369次浏览 201人参与
# 你今年的平均薪资是多少? #
200953次浏览 1012人参与
# 如果能重来,就业or读研你选哪个? #
270434次浏览 2601人参与
# 机械人你知道哪些单休企业 #
83443次浏览 417人参与
# 你觉得什么岗位会被AI替代 #
37427次浏览 256人参与
# 秋招结束之后的日子 #
117315次浏览 1062人参与
华为HUAWEI公司氛围 740人发布