JVM
文章平均质量分 55
深入理解Java虚拟机
java.py
不甘平凡
展开
-
类加载中初始化的时机
类的生命周期 一个类的生命周期为:加载–>连接–>初始化–>使用–>卸载。其中连接包括验证–>准备解析。 初始化时机 在Java虚拟机规范中,对于类加载中的第一阶段“加载”并没有明确的规定,但是对于“初始化”阶段什么时候开始则做出了非常严格的规定,指出有且只有6中场景会触发初始化。 1、遇到new,getStatic,putStatic,invokeStatic这四条字节码指令时: 使用new创建一个实例对象 读取或设置一个类型的静态字段(被final修饰、已在编译期把结果放原创 2022-05-09 15:50:23 · 582 阅读 · 0 评论 -
类加载的过程及双亲委派模型
类加载的过程为: 加载–>连接–>初始化 连接包括:验证–>准备–解析 加载: “加载”是类加载中的第一个步骤,Java虚拟机需要完成以下三件事: 通过一个类的全限定名获取定义此类的二进制字节流 将该二进制类所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表该类的java.lang.Class实例,作为方法区这个类的各种数据的访问入口 验证: 这一阶段的目的是确保Class文件的字节流中包含的信息符合《Java虚拟机规范》的全部约束要求,保证这些信息被当做代码运行后原创 2022-05-11 10:38:27 · 254 阅读 · 0 评论