jvm 之 类加载器

加载 >>  验证  >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载

· 加载 : 在硬盘上查找并通过io读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new 对象等等。

· 验证 : 校验字节码文件的正确性

· 准备 :给类的讲台变量分配内存,并赋予默认值

· 解析 :将符号引用替换为直接引用,该阶段会把一些静态方法  

· 初始化 :对类的静态变量初始化为指定的值,执行静态代码块

math类加载的时候,编译成class文件。

1:如果加载math,把math类从硬盘加载到内从中,

2:然后检查字节码的规则

3:然后把数据分配到内存中

4:栈内存的引用 指向堆内存的数据。

5:对静态变量初始化,执行静态代码块

 

jvm 之 类加载器

 

类加载器的双亲委派机制:

启动类加载器:负责加载支撑JVM运行的位于JREd的lib目录下的核心类库,比如r.jar

扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包

应用程序类加载器:加载CLassPath路径下的类包,主要是加载自己写的那些类

自定义加载器:负责加载用户自定义路径 下的类包

 

jvm 之 类加载器

jvm 之 类加载器