JVM架构图
类加载器子系统
1、类加载器子系统负责从文件系统或者网络中加载CLass文件,Class文件在文件开头有特定的文件标识。
2、ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine 决定。
3、加载的类信息存在于一块叫做方法区的内存空间。除了类的信息外,方法区种还会存放运行时的常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class问价那种常量池部分的内存映射)。
类的加载过程
加载过程:
加载 验证 准备 解析 初始化
加载
1、通过一个类的全限定名获取定义此类的二进制字节流
2、将这个字节流所代表的静态存储结构转化为方法区的运行是数据结构。
3、在内存中生成以一个代表这个类的Java.lang.class 对象,作为方法区这个类的法中数据的访问入口。
链接
初始化![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a2d63dd1c0eca847cea958c10cf68a60.png)
类加载器
虚拟机自带的加载器
用户自定义加载器
双亲委派机制
原理
优势
沙箱安全机制