JVM面试知识框架

前言

最近在准备面试整理了份JVM的脑图,不够的话可以评论区一起补充!共同进步

在这里插入图片描述

大纲

JVM结构

真个JVM的结构
jdk和jre和jvm的关系

类加载过程

类加载器的加载过程

类加载器的分类(只用两种)

引导类,扩展类,系统类加载器分别做什么的?

用户自定义的类加载器

双亲委派机制

双亲委派模式的优势

扩展类加载器的parent为null,为什么父类加载器是启动类加载器

破坏双亲委派机制的例子

沙箱机制(自定义String会如何执行)

运行时数据区

java内存模型和java内存布局的区别?

运行时数据区的结构分布 / java内存结构

程序计数器

为什么使用PC寄存器记录当前线程执行地址
PC寄存器为什么会被设定为线程私有

虚拟机栈

什么是虚拟机栈
虚拟机栈的生命周期
作用
优点
原理
栈开发中遇到的异常
栈的内部结构
	局部变量表
	操作数栈
	动态链接
	方法返回地址
	附加信息

本地方法栈

JNI本地方法接口

内存细分
如何设置内存大小
新生代和老年代
会先分配空间过程
对象分配内存的特殊分配过程
内存分配策略总结(空间分配担保策略+动态年龄判断)
Minor GC 和Major GC 和 Full GC的对比[面试重点]
有没有单独对老年代进行的GC
为什么堆空间使用分代思想
堆是分配对象存储的唯一选择吗?
	逃逸分析-栈上分配
	区分栈上分配和栈上替换
	逃逸分析-同步省略
	逃逸分析-标量替换
堆中的对象的内存布局[面试] (对象头+示例数据+对齐填充)
从JVM的角度看String对象+intern()方法
G1中的String去重操作
String为什么不可变

方法区

永久代和元空间的区别
运行时常量池
方法区演进细节,jdk6-jdk7-jdk8变化[面试 会问不同jdk方法区有什么变化]
为什么永久代被替换成了元空间?? [面试]
StringTable为什么要放到堆?
静态变量存在哪?
方法区的垃圾回收

执行引擎

为什么说JAVA是半编译半解释型语言??

热点代码探测何时使用JIT编译器

垃圾收集器和内存分配策略

判断对象是否存活的算法

引用计数算法
可达性分析算法

引用的分类(强-软-弱-虚)

finalize()方法

垃圾收集算法

分代收集理论(思想)
1.标记-清除算法
2.标记-复制算法 (Appel式回收的应用)
3.标记-整理算法(吞吐量概念)
	3.1标记清除和标记整理的权衡

HotSpot的算法实现细节

1.根节点枚举(Hotspot的OopMap快速找到CGROOT)
2.安全点(安全点的选择 + HotSpot汇编侧面上实现原理)
3.安全区域
4.记忆集和卡表(用于解决跨代引用的临时CGROOT)
5.写屏障(写前or后屏障  +  伪共享问题)
6.并发可达性分析(节点消失问题,和解决方案)

经典的垃圾回收器(重点是CMS和G1)

1.不同的垃圾收集器的搭配
2.Serial收集器
3.serial old收集器
4.ParNew收集器(并行)
5.Parrallel Scavenge(并行,吞吐量优先,自适应内存调节)
6.parallel old收集器(并行,吞吐量优先)
7.CMS(并发,低延迟,淘汰的原因缺点)**重点
8.G1收集器(停顿预测模型+实现原理,何为价值)
	G1区域间存在跨域的引用对象怎么办?
	G1并发标记的阶段如何保证收集线程和用户线程互不干扰
	G1如何建立可靠的停顿预测模型?
	G1的运作过程大概分为四个步骤**重点
	G1和CMS的比较**重点
9.ZGC收集器

Minor GC和Full GC触发条件

Java虚拟机内存OOM

Java 如何防止OOM的 ( 回答了 GC 的分代回收 与 内存分配策略 )

什么时候执行STOP THE WORLD?

不同版本垃圾回收器的默认搭配

JVM调优

如果web服务器突然出现频率很高的FullGC,可能是什么原因?你会怎么去排查呢?

jvm排查命令

如何定位OOM

假如现在在同一台机器上开两个java项目,有几个java虚拟机?

常用的JVM参数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值