首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
滴答啦滴答啦
门头沟学院 Java
发布于江苏
关注
已关注
取消关注
@JavaSouth南哥:
【面试官】你说说都有哪些垃圾回收器
面试官:JVM为什么不采用引用计数法? 面试官:那你讲讲可达性分析算法? 面试官:垃圾回收器回收的是哪个区域? 面试官:那永久代不会进行垃圾回收对吧? 面试官:你说说都有哪些垃圾回收器? 面试官:你说的CMS为什么有较短的停顿? 面试官:那它有什么缺点? 面试官:你说G1是CMS的升级版,为什么? 面试官:垃圾回收算法都有什么? 面试官:复制算法可以怎么优化吗? 大家好,我是南哥。 一个Java学习与进阶的领路人,跟着南哥我们一起Java成长。 文章目录 判断可回收对象 引用计数法 可达性分析算法 垃圾回收器 垃圾回收区域 回收永久代 垃圾回收器 CMS原理 CMS的缺点 G垃圾回收器 垃圾回收算法 优化复制算法 1. 判断可回收对象 1.1 引用计数法 面试官:JVM为什么不采用引用计数法? 每个Java对象在引用计数法里都有一个引用计数器,引用失效则计数器 - 1,有新的引用则计数器 + 1,通过计数器的数值来判断该对象是否是可回收对象。 大家看下这个例子,如果对象A和对象B没有被任何对象引用,也没有被任何线程访问,这两个对象按理应该被回收。但如果对象A的成员变量引用了对象B,对象B的成员变量引用了对象A,它们的引用计数器数值都不为0,通过引用计数法并不能将其视为垃圾对象。 class A { B b = new B(); } class B { A a = new A(); } 就因为引用计数法很难解决对象之间相互循环引用的问题,所以目前JVM采用可达性分析算法来判断Java对象是否是可回收对象。 1.2 可达性分析算法 面试官:那你讲讲可达性分析算法? 可达性分析顾名思义就是以某个起始点来判断它是否可达,这个起始点称为GC Roots。如果Java对象不能从GC Roots作为起始点往下搜索到,那该对象就被视为垃圾对象,即可回收对象。 可以作为GC Roots对象一共包括以下四种,这点也是面试官常问的: 虚拟机栈中引用的对象。 本地方法栈中引用的对象。 方法区中类静态属性引用的对象。 方法区中常量引用的对象。 2. 垃圾回收器 2.1 垃圾回收区域 面试官:垃圾回收器回收的是哪个区域? JVM由五大区域组成:堆内存、方法区、程序计数器、虚拟机栈、本地方法栈。先说结论,垃圾回收器回收的是堆内存和方法区两大区域。 程序计数器、虚拟机栈、本地方法栈的内存分配和回收都具备确定性,都是随着线程销毁而销毁,因此不需要进行回收。 但在堆内存、方法区中,内存分配和回收都是动态的,我们只有在运行期间才能知道会创建哪些对象;另外这些垃圾对象不会自动销毁,如果任由这两部分区域的垃圾对象不管,势必造成内存的浪费甚至有内存泄漏的可能。 垃圾回收器存在的意义就是通过自动检测和回收这些垃圾对象,来减少内存泄漏的风险。 2.2 回收永久代 面试官:那永久代不会进行垃圾回收对吧? 虽然永久代的垃圾回收效率是比较低的,但永久代里的废弃常量和无用的类仍然会被回收。 例如创建一个字符串常量name,该字符串会存在于常量池中。如果该字符串没有任何String对象去引用它,当发生内存回收时有必要会清除该废弃常量。 private static final String name = "JavaGetOffer"; 2.3 垃圾回收器 面试官:你说说都有哪些垃圾回收器?
点赞 5
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 11:12
东南大学 C++
找实习真的是靠运气
我和室友报的同一部门同一岗位。我室友面了十几分钟,回答也好多没答出来,面试官直接不耐烦把会议结束了。我被拷打半个多小时,几乎所有问题都答出来,面试官都和我讨论组里项目方向,说我想做哪个都可以。我俩面试过程都全程记录的,结果他当天就接到offer,我过了一周没动静,发信息问了一下说不合适。真的搞不懂,命不好吧
大耳朵图图酱:
把你两记反了的可能性更大
点赞
评论
收藏
分享
昨天 14:36
复旦大学 硬件开发
实习要不要提前跑路
实习不累,每天准点下班,但是mentor马上离职啊啊啊啊…… 没想到啊 以为心心念念的实习核心业务是一点没有碰,已经打杂一个月了 刚刚得知mt提了离职,更不想继续了 现在有两个选择: 1⃣️先苟着,等下一个替代我mentor职位的正职来了,接触的业务或许就会多些,但是估计会碰见接替的正职并不会那么友善或是业务流不熟练,问我之前是她的实习生 应该怎么弄 可是补药啊 我也不会 2⃣️跑!现在就开始投下家实习,在mentor离职之前抢先一步提离职,但是再次面临租房、吃饭等生活成本压力 现在最主要的纠结点是 5、6月会固定请假一周回学校考试,来回成本压力大,实习生工资少的可怜,还学不到东西
我和mentor的爱恨情仇
点赞
评论
收藏
分享
03-25 12:18
潍坊学院 电子工程师
面试官叫我别写华清远见实习经历,可是不写我简历就没字可以写了
25应届生根本找不到工作,只有月薪2k到3k的软件测试要我。好歹我也过了四级,拿过奖学金,一点用没有,大学真是白读了。求大佬指点,我该选择没经验的春招,还是回学校做项目然后社招?#投了多少份简历才上岸#
大佬带我进大厂:
我以为你英文名叫hello
投了多少份简历才上岸
点赞
评论
收藏
分享
04-06 11:24
已编辑
太原学院 C++
我嘞个豆啊我还以为是鼠鼠被某司hr一眼看中了😅
不戳的柠檬:
培训?
点赞
评论
收藏
分享
04-21 16:35
中山大学 C++
字节国际电商一面
复活了,但感觉kpi手撕多线程循环打印123(不会,换题了)二叉树最近公共祖先唯二的八股单线程redis如何利用多核cpu浏览器中输入url到出现网页的全过程剩下都是在聊我的比赛经历,我的优缺点那些东西= =
字节跳动一面904人在聊
查看6道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
在微信的3个月
1.5W
2
...
想当滴孝子
1.2W
3
...
腾讯云智一二面面经
1.2W
4
...
25届双非春招游戏客户端Timeline(已OC)
8783
5
...
4.25滴滴测开
7935
6
...
双非初见白月光之学习路线分享
7656
7
...
深信服长沙测开oc
7507
8
...
所以,你们许给我们的远大前程呢
6391
9
...
爱谁谁吧!暑期实习,老娘再也不面了!
5994
10
...
滴滴后端二面 凉经
5533
创作者周榜
更多
正在热议
更多
#
我和mentor的爱恨情仇
#
10093次浏览
130人参与
#
考研可以缓解求职焦虑吗
#
14718次浏览
189人参与
#
平安产险科技中心求职汇总
#
246478次浏览
2622人参与
#
实习进度记录
#
260526次浏览
3289人参与
#
你喜欢工作还是上学
#
33437次浏览
337人参与
#
考研失败就一定是坏事吗?
#
95222次浏览
794人参与
#
大学生该如何认清当下的就业环境?
#
30775次浏览
260人参与
#
浅聊一下我实习的辛苦费
#
213656次浏览
1651人参与
#
你怎么评价今年的春招?
#
92504次浏览
1182人参与
#
找不到好工作选择GAP真的丢人吗
#
55791次浏览
678人参与
#
考研人,我有话说
#
98234次浏览
896人参与
#
我的AI电子员工
#
5250次浏览
48人参与
#
毕业论文怎么查AI率
#
19790次浏览
1318人参与
#
我的求职精神状态
#
28124次浏览
473人参与
#
秋招白月光
#
113476次浏览
1388人参与
#
如果能重来,就业or读研你选哪个?
#
131074次浏览
1640人参与
#
非技术er求职现状
#
53900次浏览
398人参与
#
我的第一份实习怎么找的
#
73448次浏览
731人参与
#
五一出游找搭子
#
8773次浏览
82人参与
#
硬件人,你被哪些公司给挂了
#
45020次浏览
702人参与
#
实习好累,可以辞职全力准备秋招吗
#
140710次浏览
1517人参与
牛客网
牛客企业服务