: 子类转换为父类(安全,有效) 父类转换为子类(危险)进行算术运算,使用的是否是相同类型指令等符号引用验证发生在解析阶段前:符号引用转换为直接引用目的: 保证符号引用转为直接引用时,该类不缺少它所依赖的资源...,相对偏移量或间接定位目标引用的句柄与虚拟机内存布局相关解析直接引用时目标引用已经被加载到内存中并未规定解析的时间 可以是类加载时就对常量池的符号引用解析为直接引用 也可以在符号引用要使用的时候再去解析...(类, 抽象类, 接口)进行解析然后在此字段所属的类中查找该字段简单名称和描述符都匹配的字段,返回它的直接引用如果此字段所属的类有父类或实现了接口,要自下而上的寻找该字段找不到抛出NoSuchFieldError...(类, 抽象类, 接口)进行解析然后在此方法所属的类中查找该方法简单名称和描述符都匹配的方法,返回它的直接引用如果此方法所属类是接口直接抛出IncompatibleClassChangeError异常如果此方法所属的类有父类或实现了接口...(不适用于接口)虚拟机启动时,先初始化main方法所在的类某类实现的接口中有默认方法(JDK8新加入的),要先对接口进行初始化JDK7新加入的动态语言支持,部分....被动引用当访问静态字段时,只有真正声明这个字段的类才会被初始化