JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

Part1 JVM梳理知识点

Java 虚拟机,是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件( .class )。

跨平台的是 Java 程序(包括字节码文件),,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 。

JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

JVM 组成部分

JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?
  • 类加载器,在 JVM 启动时或者类运行时将需要的 class 加载到 JVM 中。
  • 内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者 PC 指针的记录器等。
  • 执行引擎,执行引擎的任务是负责执行 class 文件中包含的字节码指令,相当于实际机器上的 CPU 。
  • 本地方法调用,调用 C 或 C++ 实现的本地方法的代码返回结果。

好吧,下面来看看JVM的知识点梳理!

注意注意:无论是下面分享的JVM知识点梳理,还是学习路线,学习笔记,或者真题解析,都可以免费分享出来跟大家一起学习,私信【学习】即可免费下载领取!

1、类加载器

  • 加载
  • 验证
  • 准备
  • 解析
  • 初始化


JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

2、对象的创建过程

  • 检查类是否被加载
  • 为对象分配内存
  • 为分配的内存空间初始化零值
  • 为对象进行其他设置
  • 执行 init 方法


JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

3、对象的内存布局

  • 对象头(markword)
  • 实例数据(Instance Data)
  • 对其填充(Padding)
  • 预估对象大小


JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

4、对象访问

  • 句柄访问
  • 直接指针

5、JVM 内存区域

  • 虚拟机栈
  • 本地方法栈
  • 程序计数器
  • 本地内存


JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

6、对象存活判断

  • 引用计数
  • 可达性分析
  • finalize
  • 对象引用类型

7、垃圾回收算法

  • 标记-清除
  • 标记-整理
  • 复制算法
  • 分代算法


JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

8、安全点

  • 安全点
  • 安全区域

9、JVM 垃圾回收器

  • Serial (新生代)
  • ParNew(新生代)
  • Parallel Scavenge(新生代)
  • Serial Old(老年代)
  • Parallel Old(老年代)
  • CMS(Concurrent Mark Sweep)(老年代)
  • G1
  • ZGC


JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

Part2 JVM学习路线(xmind)

JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

Part3 我的JVM学习笔记

给大家介绍一本学习书籍《Java虚拟机:JVM高级特性与最佳实践》454页的PDF,分为5个部分:走近java、启动内存管理机制、虚拟机执行子系统、程序编译与代码优化、高效并发。

JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

说到这个笔记,前些日子我自己还整理了一份JVM的笔记,也拿出来分享一下吧。这份JVM笔记我主要是分成了十个模块:(1)JVM 内存结构、(2)HotSpot 虚拟机对象探秘、(3)垃圾收集策略与算法、(4)HotSpot 垃圾收集器、(5)内存分配与回收策略、(6)JVM 性能调优、(7)类文件结构、(8)类加载的时机、(9)类加载的过程、(10)类加载器

JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

Part4 JVM真题解析

下面这些是我总结的一些面试常问的题目并附带解析:

  • 内存模型以及分区,需要详细到每个区放什么?
  • 堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?
  • 对象创建方法,对象的内存分配,对象的访问定位?
  • GC 的两种判定方法?
  • SafePoint 是什么?
  • GC 收集器有哪些?CMS 收集器与 G1 收集器的特点?
  • Minor GC 与 Full GC 分别在什么时候发生?
  • 几种常用的内存调试工具:jmap、jstack、jconsole、jhat?
  • 类加载的几个过程?
  • JVM 内存分哪几个区,每个区的作用是什么?
  • 如和判断一个对象是否存活?(或者 GC 对象的判定方法)?
  • 简述 java 垃圾回收机制?
  • java 中垃圾收集的方法有哪些?
  • java 内存模型?
  • java 类加载过程?
  • 简述 java 类加载机制?
  • 类加载器双亲委派模型机制?
  • 什么是类加载器,类加载器有哪些?
  • 简述 java 内存分配与回收策率以及 Minor GC 和 Major GC?
  • ... ...

详细解析如下,篇幅原因就不一一给出答案了,不过以上说的这些都有整理成文档,需要的话可以【点击“JVM” 】免费分享给你~

JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?

Part5 最后吧啦几句

面试问到JVM恐怕早已是家常便饭了吧,也许你正在准备着和面试官过招,那么正好,我这份JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,全部分享给你够不够呢?够不够你轻松手撕面试官?

最后小编还准备了400集学习视频教程一起分享给大家、希望大家早日精通拿高薪!

获取方式:

只需转发➕关注小编、再来私信小编关键词“学习”即可免费领取啦!


分享到:


相關文章: