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