前言
语雀地址:https://www.yuque.com/yangxiaofei-vquku/wmp1zm/dmz2gd验证(Verify)
目的:验证的目的是保证.class文件的字节流中信息符合当前虚拟机的要求,保证加载类的正起行,不会危害虚拟机的自身安全。
验证大体分为四步格式检查、语义检查、字节码验证、符号引用验证,验证阶段并不是单独存在的模块,验证阶段穿插在加载和解析阶段之中完成。
- 其中格式检查会在加载阶段穿插执行,只有通过格式认证的字节码才会被加载到方法区
- 格式验证之外的其他验证都在方法区完成,验证阶段虽然拖慢了加载速度,但是避免了字节码在运行时还需要各种检查,磨刀不误砍柴工。
- 符号引用验证是在解析步骤时完成,如果验证时发现符号引用不存在直接引用,会出现NoClassDefFoundError或者NoSuchMethodError异常。
准备(Prepare)
- 为类变量分配内存&#