栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JVM面试知识框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JVM面试知识框架

文章目录

前言大纲JVM结构类加载过程

类加载器的加载过程类加载器的分类(只用两种)引导类,扩展类,系统类加载器分别做什么的?用户自定义的类加载器双亲委派机制双亲委派模式的优势扩展类加载器的parent为null,为什么父类加载器是启动类加载器破坏双亲委派机制的例子沙箱机制(自定义String会如何执行) 运行时数据区

java内存模型和java内存布局的区别?运行时数据区的结构分布 / java内存结构程序计数器虚拟机栈本地方法栈堆方法区 执行引擎

为什么说JAVA是半编译半解释型语言??热点代码探测何时使用JIT编译器 垃圾收集器和内存分配策略

判断对象是否存活的算法引用的分类(强-软-弱-虚)finalize()方法垃圾收集算法HotSpot的算法实现细节经典的垃圾回收器(重点是CMS和G1)Minor GC和Full GC触发条件Java虚拟机内存OOMJava 如何防止OOM的 ( 回答了 GC 的分代回收 与 内存分配策略 )什么时候执行STOP THE WORLD?不同版本垃圾回收器的默认搭配 JVM调优

如果web服务器突然出现频率很高的FullGC,可能是什么原因?你会怎么去排查呢?jvm排查命令如何定位OOM假如现在在同一台机器上开两个java项目,有几个java虚拟机?常用的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参数
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/764292.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号