- java类型
- 基本类型(8种基本类型)
- 引用类型
- 类(有字节流)
- 接口(有字节流)
- 数组(jmv直接生成,无字节流)
- 类加载过程
- 加载(查找字节流,创建类的过程)
- 加载器:启动器加载器、扩展器加载器、应用加载器
- 加载过程:双亲委派
- 链接(将创建的类合并至jvm中,使之能执行的过程)
- 验证(确保符合jvm规范)
- 准备(为被加载类的静态字段分配内存)
- 解析(将符号引用解析为实际引用,非必须)
- 初使化(为标记的常量值字段赋值和执行< clinit >方法的过程)
- 当虚拟机启动时,初始化用户指定的主类
- 新建目标类实例的new指令时,初始化 new 指令的目标类
- 调用静态方法的指令时,初始化该静态方法所在的类
- 访问静态字段的指令时,初始化该静态字段所在的类
- 子类的初始化会触发父类的初始化
- 接口定义了default方法,实现该接口的类的初始化,会触发该接口的初始化
- 使用反射 API 对某个类进行反射调用时,初始化这个类
- 初次调用 MethodHandle 实例时,初始化该 MethodHandle 指向的方法所在的类
- 加载(查找字节流,创建类的过程)
jvm如何加载java类

扫描二唯码,订阅我的公众号