面了一个 32+ 的大佬,JVM 太辣鸡......

Java仓库

共 1230字,需浏览 3分钟

 · 2021-08-09

没有Java工程师不会 JVM,但事实上,很多人都只是停留在知识表面,一旦面试中被面试官问深入了,或者实际在工作中碰到调优问题,尤其是 GC 调优可能就要慌得一批了。

前两天,粉丝小麦跟我吐槽他的面试经历,以下是小麦同学面试某大厂时,面试官的问题,如果你没准备好“弹药”,分分钟就是踩进坑里——

面试官大佬问:请简单说说什么是 CMS?
小麦(内心OS:还好这个我昨天刚看了面经,我会!)答道:面试官好,CMS 即Concurrent Mark Sweep 的简称,是一种垃圾回收器。

面试官大佬:嗯嗯,JVM 中怎么调用呢?
小麦:在启动 JVM 的参数加上“-XX:+UseConcMarkSweepGC”来指定使用 CMS 垃圾回收器。

面试官大佬接着问:嗯,分别说说新生代和老年代 GC 有哪些?区别是什么?分代 GC 的原理是什么?
小麦(内心OS:前两个还好,原理是……糟了):新生代有 Serial、ParNew、Parallel Scavenge,老年代有 Serial Old、Parallel Old、CMS,分代 GC 原理的话,原理是……emm……是……

到这他就开始卡壳了,因为之前对于分代 GC 的原理小麦并不熟悉,所以完全回答不上来。

接下来,面试官又一连串问了小麦以下问题:
“新生代、老年代是怎么管理的呢?”
“为了保证分代 GC 的正确,需要哪些新的结构?”
“讲讲 G1 GC 的原理?以及跟分代 GC 相比有什么区别?”
“了解过哪些辣鸡回收算法?它是怎么样的?怎么优化它?怎么调参?生产中使用它吗?
“……”

对于没有深入学习JVM 的小麦来说,简直就是”拳拳到肉”。

小麦跟我吐槽:JVM 人人都用,为什么要问的这么深,工作中又不会用到.....

真的不会用到吗?相信少人现在都陷入了这样的误区中。其实,在很多时候,我们只有掌握了原理,工作起来才能事半功倍。
 
正好最近看到了一门课程《Java 面试小课(JVM 篇)》,授课讲师是华为编译器高级专家,原 Huawei JDK 的负责人。他长期从事语言虚拟机、编程语言和数据库等基础软件开发,所以对 JVM 原理的理解是非常透彻的。

下周一就正式开课了,周一到周三(8.9-8.11)连续 3 天直播,不光包含了 JVM 中 GC 算法的原理,还有面试常问的 CMS 、G1 这些 GC 原理,以及 G1 GC 调优的案例分析。

除了直播课之外,学习中遇到任何问题,都可随时在学习交流群与主讲老师沟通,直播后也会有录播回放可以复习。今天为大家申请了一些免费名额,数量不多,只有 100 个。有需要的同学扫描下面二维码免费报名哈。

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报