首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
04-22 13:30
门头沟学院 后端
京东传奇耐面王
京东面了七八次,被四个部门捞,经历过kpi和超时挂,终于是过了暑期结束
奔放的鸽子在收藏面经:
耐挂王
京东开奖122人在聊
点赞
评论
收藏
分享
04-22 15:19
南方医科大学 运营
格力行政管理群面
一周前收到群面意愿调查,昨晚十点多收到群面邮件,今天下午面试。一共12个人,只有一个HR,预定下午两点的面试,HR姗姗来迟,迟到了十分钟。没有自我介绍环节,题目如下↓大家一定要保证网络畅通,我真的服了这个校园网了,之前调试的时候还很流畅,后面面试了,根本听不见对方说什么(可能对方网络也有问题,因为我看很多人都在宿舍),无法充分发挥自己的实力(虽然也没什么实力)。这是我参加的第一场群面,家电龙头企业的群面,还是很有意义的,以后我应该就不慌了。
点赞
评论
收藏
分享
04-22 18:00
已编辑
东莞市东华初级中学 C++
请问腾讯hr加wx是稳了吗
4.17录用评估一周了,昨晚hr突然加微信,但是官网还是录用评估,状态也还是报批中4.22更已offer
JustinXiang:
你这个聊天记录不是就说明一切了吗
腾讯泡池子938人在聊
点赞
评论
收藏
分享
03-12 11:18
河南开封科技传媒学院 Web前端
25届二本计算机前端,一个面试都没有,能帮看简历吗?
不懂!!!:
感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
04-27 12:05
从小公司hr的视角浅谈一下今年校招
公司不大不小,怕掉马所以匿名。今年是我们工作最轻松的一年了,一个是岗位需求少了,另外就是简历量多了,校招工作很早就结束了。大环境不好,所以公司效益不好,老板嚷嚷着降本增效,尽量招一些招之即用的人,校招需求几乎减半了。但即使这样我们依旧算是招的比较多的了,同行基本上不来双选会摆摊了,不少社招都停了,只出不进。和学校就业处的老师也聊了下,参加双选会的企业也少了很多,即使参加的也不怎么招人了。我们在某招聘网站上同步也挂了几个基础岗位,待遇真的一般,上午挂的,到下午就收了几百份简历,消息根本回不过来,即使点不合适都要点好久,挂了一天就赶紧下架了。想说啥呢,很多同学找不到工作,说是不是学历不好,是不是自...
我推的MK:
这也太卷了,原来都说打工人不要自愿压价,这是背叛了工人阶级,但是在吃不饱饭没有工作空窗期还是死罪的大背景面前哪有什么背不背叛……为什么会这样
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
大连某小区保安一面
2.6W
2
...
五一别写你那破开源代码了
2.1W
3
...
滴滴秋储后端
1.9W
4
...
北京到底有谁在啊?
1.3W
5
...
如果你的项目是烂大街rpc,面试该怎么吹?
1.2W
6
...
想听实话吗,校招ssp聊聊大厂客户端
8281
7
...
妈妈,我被应届生身份压得喘不过气
8052
8
...
美团/饿了么/京东 配送端面经
7458
9
...
想当滴孝子
6949
10
...
爱谁谁吧!暑期实习,老娘再也不面了!
6453
创作者周榜
更多
正在热议
更多
#
领导秒批的请假话术
#
2543次浏览
23人参与
#
五一之后,实习真的很难找吗?
#
36659次浏览
228人参与
#
平安产险科技中心求职汇总
#
247009次浏览
2629人参与
#
材料专业哪个方向更好找工作?
#
17912次浏览
89人参与
#
如果有时光机,你最想去到哪个年纪?
#
42671次浏览
764人参与
#
如何缓解入职前的焦虑
#
168490次浏览
1249人参与
#
你想留在一线还是回老家?
#
30166次浏览
380人参与
#
应届生薪资多少才合理?
#
2813次浏览
24人参与
#
面试等了一周没回复,还有戏吗
#
113293次浏览
1052人参与
#
扒一扒那些奇葩实习经历
#
39181次浏览
750人参与
#
考研可以缓解求职焦虑吗
#
18743次浏览
235人参与
#
求职遇到的搞笑事件
#
104159次浏览
729人参与
#
你喜欢工作还是上学
#
36326次浏览
399人参与
#
入职第一天,你准备什么时候下班
#
44922次浏览
290人参与
#
经纬恒润求职进展汇总
#
115776次浏览
1021人参与
#
许愿池
#
270314次浏览
2841人参与
#
大疆的机械笔试比去年难吗
#
69379次浏览
599人参与
#
考研失败就一定是坏事吗?
#
98624次浏览
825人参与
#
硬件人,你被哪些公司给挂了
#
46101次浏览
712人参与
#
机械人求职现状
#
13546次浏览
122人参与
#
大学生该如何认清当下的就业环境?
#
34208次浏览
293人参与
牛客网
牛客企业服务