Java JVM面试脉络
2021-09-12 09:53:32 1 举报
java JVM内容 全面覆盖,全都是面试考点
作者其他创作
大纲/内容
JVM基础
class文件结构
Java代码的执行流程
类加载子系统
加载
类加载器
启动类加载器(BootStrap ClassLoader)
扩展类加载器(Extension ClassLoader)
应用程序类加载器(Application ClassLoader)
自定义加载类
沙箱安全机制
双亲委派机制
链接
验证
准备
解析
初始化
运行时数据区
分类
元空间
堆
TLAB
设置初始参数
年轻代与老年代
年轻代(1/3堆,默认-XX:NewRatio=2, 1:2)
Eden(8/10 ,默认-XX:SurvivorRatio =8 ,-Xmn设置新生代最大内存)
Survivor0(1/10)
Survivor1(1/10)
老年代(2/3堆)
分代思想
内存分配策略***
字符串常量池***
Intern的实现原理(JDK1.8)
String与StringBuffer、StringBuilder的区别
栈(-Xss设置)最大栈空间
栈幁
局部变量表
slot:存放局部变量,32位以内占一个,64位占两个
操作数栈
栈顶缓存技术
动态链接
方法出口
GC
垃圾标记阶段
引用计数算法
优点
缺点
可达性分析算法
三色标记法
白色:尚未访问过
黑色:本对象已访问过,本对象引用的其它对象也已经访问过
灰色:本对象已访问过,但本对象引用的其它对象还未完全访问完,全部访问完之后转化成黑色
GC算法
标记-清除算法(mark-swap)
缺点:1.效率不高 2.STW 3.空间碎片
复制算法(copy )
优点:没有清除过程,运行高效,不会产生空间碎片
缺点:内存与时间开销
标记-压缩(mark-compact)
缺点:1.移动对象,调整引用地址的时间开销。2.移动过程中,STW
垃圾收集器
Serial (串行)
ParNew (Parallel New,只能回收新生代)
Parallel Scavenge
CMS (Concurrent Mark Sweep)
初始标记
并发标记
重新标记
并发清除
Serial Old (串行)
Parallel Old(并行)
G1
优点:不会产生空间碎片,按收益动态划分回收集,可以指定最大停顿时间
缺点:每个region持有一个卡表处理跨代指针,卡表会占用大量空间
低延迟的垃圾收集器
shenandoah
ZGC
调优
收藏
0 条评论
下一页
为你推荐
查看更多