20道JVM面试重点问题及十大模块知识点笔记

JVM是大多数Java学习 小白的一道坎,同时也是工作2到3年程序员面试的高频点。通过学习JVM,可以深入理解代码从编译到加载的过程、内存中对象的创建与垃圾回收、日常开发中快速定位性能问题等,当然也是面试不可缺少的加分项。

一、20道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?

二、十大模块知识点学习笔记

    第一个模块:JVM内存结构
    第二个模块:HotSpot虚拟机对象探秘
    第三个模块:垃圾收集策略与算法
    第四个模块:HotSpot垃圾收集器 第五个模块:内存分配与回收策略
    第六个模块:JVM性能调优 第七个模块:类文件结构

编辑切换为居中

添加图片注释,不超过 140 字(可选)

    第八个模块:类加载的时机 第九个模块:类加载的过程
    第十个模块:类加载器

三、附带福利

经验分享 程序员 微信小程序 职场和发展