Jvm系列-深入理解类加载过程
文章目录 类加载器主要流程: 类的使用方式: 什么情况是主动使用: 被动使用: 举例:主动使用/被动使用: 案例一 案例二 案例三 类加载器主要流程: 加载>连接(校验,准备,解析)>初始化>使用>卸载 类的使用方式: 所有的java 虚拟机实现必须是在Java程序首次主动使用类、接口的时候才初始化它们; 换句话说被动使用就不会初始化 首次初始化:也就是只会初始化一次; 什么情况是主动使用: 创建类的实例 访问某个类或者接口的静态变量,或者对这个静态变量赋值(取值赋值) 被动使用: 类的加载: 把类class的二进制文件加载内存中,放到运行时数据区的方法区,在内存中创建java.lang.Class对象,用来封装类的Class对象,唯一只有一份。 可以看成一面镜子,可以反映出类的所有内容。是用来描述这个class对象的数据结构。 加载后放在哪? jvm规范都没有规定放置的位置,hotspot是放在方法区; 类加载来源: 类的class文件可以从各种途径去加载,本地系统,还可以通过网络下载,jar,zip,从专有数据库中获取。。。 举例:主动使用/被动使用: 案例一 package jvm . classloader ; import org . junit . Test ; /** * @author: wyj * @date: 2019/9/9 * @description: *