JVM结构
2021-04-16 23:20:26 0 举报
java类加载流程
作者其他创作
大纲/内容
XXX.java
xxx.class
方法出口
局部变量表
本地方法区
to1/10
程序计数器
栈帧……
用于存放方法的返回值,以及程序退出时部分栈帧信息
老年区
记录下一个执行的字节码行号
加载classPath下的jar包
操作数栈
old generation2/3堆空间
系统加载器Application ClassLoader
每个方法从调用到执行的过程,就对应一个栈帧
启动类加载器BootStrapClassLoader
MetaData元数据区直接内存取代了永久代
java编译器
执行引擎
使用using
动态链路
堆 Heap
加载loading
堆
虚拟机栈
扩展类加载器Extension ClassLoader
新生区eden8/10
用户自定义加载器User ClassLoader
加载JDK/jre/lib/ext 下的jar包
VM自带的ClassLoader只是懂得从本地文件系统加载标准的java class文件,因此如果编写了自己的ClassLoader,便可以做到如下几点:1)在执行非置信代码之前,自动验证数字签名2)动态地创建符合用户特定需要的定制化构建类3)从特定的场所取得java class,例如数据库中和网络中
存活区survival space
加载JDK/jre/lib 下的jar包
用来存放方法里的局部变量
验证verification
卸载Unloading
方法区
from1/10
初始化initialization
类加载器子系统
准备preparation
线程
动态引用堆中的对象
解析resolution
栈帧2
连接
常量池
运行时数据区(内存结构)
native方法,由C实现,执行引擎会调用本地方法库
先进后出,操作数据后赋值给局部变量
UserClassLoader extends ClassLoader重写 findClass(String name)
young generation 1/3堆空间
栈帧1
0 条评论
下一页