虚拟机加载类的过程
来源:互联网 发布:ubuntu 压缩文件夹zip 编辑:程序博客网 时间:2024/06/03 18:32
类从被加载到内存开始,到卸载出内存为止,其整个生命周期:
加载,验证,准备,解析,初始化,使用,卸载
其中:验证,准备,解析三个阶段又统称为“连接”
类加载的过程:
包括:加载,验证,准备,解析和初始化等5个阶段。
1.加载
1)通过一个类的全限定名来获取定义此类的二进制字节流。
2)强这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3)在堆中生成代表这个类的java.lang.Class 对象,作为方法区数据的访问入口。
2.验证
验证阶段确保Class文件的字节流包含的信息符合当前虚拟机的信息,并且不会危害当前虚拟机的安全。
1.文件格式验证:验证字节流文件是否符合Class文件格式规范。
2.元数据验证:对元数据信息进行语义校验。
3.字节码验证:对数据流和控制流进行分析,校验方法体,保证安全。
4.符号引用验证:确保解析动作能正常执行。
3.准备
正式为类的变量分配内存并设置类变量初始值的阶段,都在方法区中进行分配
4.解析
将常量池内的符号引用替换为直接引用的过程。
主要针对:
类或接口(CONSTANT_Class_info),
字段(CONSTANT_Fieldref_info),
类的方法(CONSTANT_Methodref_info),
接口方法(CONSTANT_InterfaceMethodref_info)4类符号进行解析。
5.初始化
类初始化阶段是类加载过程的最后一步。
在准备阶段,变量已经赋过一次系统要求的初始值,而在初始化阶段,则是根据程序员通过程序去初始化类变量和其他资源。
或者说就是执行类构造方法的过程。
0 0
- 虚拟机类的加载过程
- 虚拟机加载类的过程
- 虚拟机类加载过程
- 虚拟机类加载过程
- 虚拟机类加载过程
- Java虚拟机 类加载的过程
- JAVA虚拟机:类加载的过程
- Java虚拟机----类的加载过程
- java虚拟机中类加载的过程
- java虚拟机类加载的过程
- java虚拟机的类加载过程
- Java虚拟机类加载的过程
- Java虚拟机 类加载的过程
- Java虚拟机类加载过程
- JAVA虚拟机类加载过程
- Java虚拟机类加载过程
- 《深入理解Java虚拟机》:类加载的过程
- [深入理解Java虚拟机]第七章 类加载的过程
- FMDB数据库(二)
- jquery 获取url参数
- SlidingMenu创建侧滑栏的四种方式
- 浅谈开发中的MVVM模式及与MVP和MVC的区别
- asp.net webform 通过ajax取得json数据(一)
- 虚拟机加载类的过程
- Bool值的判断规则
- 结合Dialog的onClick()事件理解Android中的回调函数
- C#将图片字节流转为Base64直接放入html的img标签src属性中
- 微信返回上一页停留在上次点击的位置
- AngularJs 自定义ajax服务为请求添加加载动画
- 如何关闭Golang中的HTTP连接 How to Close Golang's HTTP connection
- 分布式存储系统GlusterFS初体验
- 分布式开源框架Hadoop介绍