类的加载
类的加载方式
1.New
2.Class.forName() 通过反射加载
3.调用某个ClassLoader的实例的loadClass()方法
1是静态加载,2、3是动态加载
类的加载过程
1.加载
(1) 通过类名加载二进制字节流
(2) 将字节流的静态存储结构转化为运行时数据结构
(3) 生成java.lang.Class对象
2.链接
(1) 验证
① 文件格式验证
② 元数据验证
③ 字节码验证
④ 符号引用验证
(2) 准备:为静态变量分配内存并初始化为默认值
(3) 解析
3.初始化:执行类中定义的Java程序代码
4.使用:JVM从入口方法执行代码
5.卸载:JVM销毁创建的Class对象