JVM
2023-08-26 17:06:57 0 举报
AI智能生成
Java虚拟机知识总结
作者其他创作
大纲/内容
类加载和创建对象
加载:把class字节码文件从各个来源通过类加载器装载入内存(方法区)中
链接
验证
准备
解析
初始化:对static修饰的变量或语句进行初始化
创建对象
类加载器
双亲委派模型工作流程
破坏双亲委派
SPI机制
继承ClassLoader重写loadClass方法
OOM问题
常见OOM
Java7 永久代(方法区)溢出
虚拟机栈溢出
如何计算栈的深度?TODO
Java 堆内存溢出
线上OOM排查
有了GC还会有内存泄漏问题吗?
运行时数据区域
程序计数器
栈
虚拟机栈
本地方法栈
堆
GC堆内存分配与回收
什么时候触发Full GC?
如何避免full gc?
对象如何进入老年代?
直接分配
从年轻代晋升
会产生OutOfMemoryError异常
方法区
1.8以前用永久代实现
1.8用元空间实现
回收方法区
直接内存
常见于NIO操作时,用于数据缓冲区
直接内存是否可以被GC?
垃圾收集
如何判断对象是否可被回收?
引用计数法
可达性分析算法
哪些对象可以作为 GC Roots 呢?
引用的两次标记过程
垃圾收集算法
标记-清除算法
标记-复制算法
标记-整理算法
分代收集算法
垃圾收集器
Serial和Serial Old收集器
ParNew收集器
Parallel Scavenge和Parallel Old收集器
CMS收集器
G1收集器,JDK9
优点
缺点
0 条评论
下一页