20 道阿里面试必问 JVM 面试专题(文末附送答案及 JVM 学习文档)
前言
很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不够了解,因此成功率不高。通常情况下校招生面试的成功率低于 1%,而社招的面试成功率也低于 5%,所以对于候选人一定要知道设立面试的初衷以及每个环节的意义,有的放矢……
而 JVM 是 Java 程序运行基础,面试时一定会遇到 JVM 相关的题。所以我们准备了部分的面试真题,作为参考,看看你距离阿里还差多远。
1. 内存模型以及分区,需要详细到每个区放什么。
2. 堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。
3. 对象创建方法,对象的内存分配,对象的访问定位。
4. GC 的两种判定方法:
5. SafePoint 是什么
6. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用 在什么地方,如果让你优化收集方法,有什么思路?
7. GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。
8. Minor GC 与 Full GC 分别在什么时候发生?
9. 几种常用的内存调试工具:jmap、jstack、jconsole、jhat
10. 类加载的几个过程:
11.JVM 内存分哪几个区,每个区的作用是什么?
12.如何判断一个对象是否存活?(或者 GC 对象的判定方 法)
13.简述 java 垃圾回收机制?
14.java 中垃圾收集的方法有哪些?
15.java 内存模型
16.java 类加载过程
17. 简述 java 类加载机制
18. 类加载器双亲委派模型机制
19.什么是类加载器,类加载器有哪些
20.简述 java 内存分配与回收策率以及 Minor GC 和 Major GC
怎么样,面对这连珠炮似的面试发难,你能坚持到第几回合?
没关系,小编早已经把答案准备好了~~~
![](https://static001.geekbang.org/infoq/b6/b626224f621603879c621399717a4d58.png)
![](https://static001.geekbang.org/infoq/d5/d5ef47b1a9d94598cc16ef0e5b7212e0.png)
![](https://static001.geekbang.org/infoq/ee/eed55322eceb624b97610ec3f31722f6.png)
![](https://static001.geekbang.org/infoq/61/61fd0677a21b9f578b41399a5983b61c.png)
![](https://static001.geekbang.org/infoq/7c/7cef02d80785d056d535973a199c922d.png)
因为答案较长较多,在这里就不一一展示了,有需要获取全部答案的朋友,点击这里 即可获取!!!
你以为这就完了?绝对不会!!!
小编再为大家推荐一本 JVM 设计原理和实现的 PDF 文档:
![](https://static001.geekbang.org/infoq/00/002838e33a88ba6e320a428f82923005.png)
数据结构部分包括 Java 字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章, 从源码层面详细分析了 Java 字段重排、字段继承等关键机制。再如方法解一章,给出了 Java 多态特性在源码层面的实现方式。本书通过直接对源代码的分析,从根本上梳理和澄清 Java 领域中的关键概念和机制。
执行引擎部分包括 Java 方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是全书技术含量最高的部分,需要读者具备一定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于高级语言而言,语法非常简单,语义也十分清晰。执行引擎部分重点描述 Java 源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理 CPU 所执行的技术实现。同时详细分析了 Java 函数堆栈的创建全过程,在源码分析的过程中,带领读者从本质上理解到底什么是 Java 函数堆栈和栈帧,以及栈帧内部的详细结构。
内存分配部分主要包括类型创建与加载、对象实例创建与内存分配,例如 new 关键字的工作机制,import 关键字的作用,再如 java.lang.ClassLoader.loadClass()接口的本地实现机制。
本书并不是简单地分析源码实现,而是在描述 HotSpot 内部实现机制的同时,分析了 HotSpot 如此这般实现的技术必然性。读者在阅读本书的过程中,将会在很多地方看到作者本人的这种思考。
目录:
![](https://static001.geekbang.org/infoq/0f/0f1381512b9c5af5904f1b298957f223.png)
![](https://static001.geekbang.org/infoq/43/43016fa968e1345bc85fba5a4c03cf48.png)
![](https://static001.geekbang.org/infoq/66/66e320075171149fd4217ff34dcaa74e.png)
![](https://static001.geekbang.org/infoq/d0/d0bb42f66a41d24d95391cd09db64186.png)
怎么样,有了这两套 JVM 学习和面试秘籍,是不是感觉自己也是可以的啊?你当然是可以的啦!!!只要认真学下去了,结合实战训练,未来一定是属于你的!!!
喜欢请大家多多点赞评论分享,关注小编,需要免费领取 JVM 面试及 PDF 文档的朋友们 点击这里 即可获取啦!!!
评论