JVM思维导图
2022-04-27 20:26:03 246 举报
AI智能生成
JVM思维导图是一种图形化的工具,用于表示Java虚拟机(JVM)的结构和功能。它包括了JVM的主要组件,如类加载器、内存模型、执行引擎、垃圾收集器等。此外,它还展示了这些组件之间的关系和交互方式。通过使用JVM思维导图,开发人员可以更好地理解Java程序在运行时的工作原理,从而更有效地优化代码性能和解决潜在问题。总之,JVM思维导图是学习和掌握Java虚拟机的重要工具。
作者其他创作
大纲/内容
windows上的java启动程序是java.exe
第一步: java调用底层的jvm.dll文件创建java虚拟机
类加载运行全过程
在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等
加载
校验字节码文件的正确性,:格式是否正确. 内容是否符合java虚拟机的规范
验证
给类的静态变量分配内存,并赋予默认值
准备
将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成)
解析
对类的静态变量初始化为指定的值,执行静态代码块
初始化
使用
卸载
类加载的详细过程
引导类加载器(Bootstrap ClassLoader)
扩展类加载器主要是用来加载扩展的jar包。 加载jar的目录位于jre目录的lib/ext扩展目录中的jar包
扩展类加载器(Ext ClassLoader)
主要是用来加载用户自己写的类的。 负责加载classPath路径下的类包
应用程序类加载器(App CloassLoader)
负责加载用户自定义路径下的类包
自定义类加载器
类加载器
双亲委派机制
自定义一个类加载器
如何打破双亲委派机制?
类加载机制
类装载子系统
执行引擎
本地接口
运行时数据区
作用
jvm内存模型及其作用
堆
方法区
线程共享的
虚拟机栈
本地方法栈
程序计数器
线程私有的
运行时数据区的组成及其作用
局部变量表
操作数栈
动态链接
方法出口
栈帧
虚拟机栈的组成部分及其作用
堆的组成部分以及其作用
jvm内存参数设置
JVM内存模型
类加载检查
内存分配
设置对象头
执行Init()方法
对象的创建过程
分配流程
对象在栈上分配
对象在Eden区分配
长期存活的对象将进入老年代
大对象直接进入老年代
对象动态年龄判断机制
老年代空间分配担保机制
对象的内存分配
jvm对象创建与内存分配机制
标记清除
复制算法
标记整理
垃圾回收算法
Serial
Parallel
ParNew
CMS
G1
ZGC
垃圾回收器
日志分析
类加载/卸载相关
常用调优参数
常见的垃圾回收算法和垃圾回收器
Jamp
Jstack
Jinfo
Jstat
常用的调优命令
常量池
JVM思维脑图
0 条评论
回复 删除
下一页