首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
滴答啦滴答啦
门头沟学院 计算机类
发布于江苏
关注
已关注
取消关注
@思考的陈:
【面试官】你说说都有哪些垃圾回收器
面试官:JVM为什么不采用引用计数法? 面试官:那你讲讲可达性分析算法? 面试官:垃圾回收器回收的是哪个区域? 面试官:那永久代不会进行垃圾回收对吧? 面试官:你说说都有哪些垃圾回收器? 面试官:你说的CMS为什么有较短的停顿? 面试官:那它有什么缺点? 面试官:你说G1是CMS的升级版,为什么? 面试官:垃圾回收算法都有什么? 面试官:复制算法可以怎么优化吗? 👉以【面试官面试】形式覆盖Java程序员所需掌握的Java核心知识、面试重点 📚本期是《JVM系列》,其他系列博客请订阅专栏《Java Offer训练营》 ❤创作不易,不妨点赞、收藏、关注支持一下 文章目录 判断可回收对象 引用计数法 可达性分析算法 垃圾回收器 垃圾回收区域 回收永久代 垃圾回收器 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 = "JavaGe
点赞 4
评论 2
全部评论
推荐
最新
楼层
秋招专场
校招火热招聘中
官网直投
相关推荐
Java三段
05-24 14:58
Java
京东面试:SpringBoot同时可以处理多少请求?
Spring Boot 作为 Java 开发中必备的框架,它为开发者提供了高效且易用的开发工具,所以和它相关的面试题自然也很重要,咱们今天就来看这道经典的面试题:SpringBoot同时可以处理多少个请求 ? 准确的来说,Spring Boot 同时可以处理多少个请求,并不取决于 Spring Boot 框架本身,而是取决于其内置的 Web 容器(因为 Web 容器的行为,决定了 Spring Boot 的行为,所以咱们姑且认为两个问题的回答是一样的)。 1.Web三大容器 Web 容器目前也是三分天下,市面上最常见的三种 Web 容器分别是:Tomcat、Undertow 和 Jetty,其...
点赞
评论
收藏
转发
byyyi
05-23 11:16
南京邮电大学 计算机类
Github多少个star才算够?
简历增色 Github多少个star才算够 1,200个够吗
牛客解忧铺
如何写一份好简历
点赞
评论
收藏
转发
鼠鼠是输输
04-23 10:15
重庆邮电大学 电气类
我只想找个3k的实习怎么这么难,唉。
点赞
评论
收藏
转发
牛客414683267号
04-17 11:15
平顶山学院 航空航天类
这种简历能找到实习吗 太难了 头都大了
点赞
评论
收藏
转发
小怂怂佳怡
05-24 21:12
上海财经大学 工商管理类
心碎了,25实习还有机会吗?!
25实习都是心碎的声音💔,还有25友友在找实习的泥泞中挣扎吗??5月底应该还会有一批捡漏机会吧
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
毕业第一课之租房攻略
9627
2
...
【奖】这个夏天🍉,和牛牛一起打卡刷题~
8707
3
...
25暑期实习的心态变化 & 拥抱变化
7788
4
...
美团后端日常实习面经
7689
5
...
拼多多一面
6665
6
...
【收集向】延毕了,影响工作吗?
4359
7
...
不要再外卖点评了
4079
8
...
拼多多笔试 0526 24届算法
4011
9
...
27届JAVA后端
3872
10
...
用友技术笔试-友新星实习项目-Java-01卷
3746
正在热议
#
和牛牛一起刷题打卡
#
4288次浏览
414人参与
#
机械制造薪资爆料
#
340514次浏览
4040人参与
#
牛客帮帮团来啦!有问必答
#
979573次浏览
15193人参与
#
通信硬件薪资爆料
#
241635次浏览
2279人参与
#
腾讯工作体验
#
146175次浏览
1405人参与
#
如何写一份好简历
#
300323次浏览
4321人参与
#
你的简历改到第几版了
#
322967次浏览
4851人参与
#
晒一晒我的offer
#
3648186次浏览
56899人参与
#
2022毕业生求职现身说法
#
20291次浏览
310人参与
#
产品人专业大盘点
#
15046次浏览
120人参与
#
毕业租房也有小确幸
#
31571次浏览
1764人参与
#
浅聊一下我实习的辛苦费
#
93120次浏览
913人参与
#
视觉/交互/设计岗位评价
#
3353次浏览
59人参与
#
实习必须要去大厂吗?
#
17933次浏览
263人参与
#
为什么国企只招应届生
#
55903次浏览
407人参与
#
你觉得机械有必要实习吗
#
10042次浏览
130人参与
#
在国企工作的人,躺平了吗?
#
105299次浏览
1335人参与
#
为什么那么多公司毁约
#
54603次浏览
482人参与
#
许愿池
#
86857次浏览
1630人参与
#
找工作时遇到的神仙HR
#
195423次浏览
1834人参与
牛客网
牛客企业服务