深入理解JVM——类加载机制
来源:互联网 发布:域名注册排行榜 编辑:程序博客网 时间:2024/05/18 15:29
类加载机制
虚拟机把class信息加载进内存,并进行校验,解析,和初始化,最终形成虚拟机可直接使用的java文件,这就是类的初始化。
class信息 可以是本地编译生成的class文件,也可以是网络io,zip包,或者数据库以及其他文件中获取,只要能被JVM验证解析通过即可。
类的生命周期
类从加载到被卸载的生命周期可用如图表示:
其中类加载包括:加载 -> 验证 -> 准备 -> 解析 -> 初始化 这五个阶段。这五个阶段中,加载,验证,准备,初始化 这四个阶段是顺序开始的,而解析则不一定,它可以在初始化之后开始,这是为了支持java语言的动态绑定。
注: 注意这里是顺序开始,而不是顺序执行。二者概念完全不同。
动态绑定与静态绑定的概念
绑定指的是把一个方法的调用与方法的类(方法主体)关联起来。
静态绑定 : 在程序执行前方法已经被绑定,由编译期或其他连接程序实现。对于java而言,可以理解为编译期的绑定,一般只有 final, static,private和构造方法为前期绑定。
动态绑定 : 运行期根据具体对象的类型进行绑定,几乎所有的方法都是动态绑定。
接下来就五个过程做具体解析:
1. 加载
加载过程中,虚拟机一般完成一下几件事情:
- 根据类的权限定名获取到该类的二进制字节流
- 将二进制字节流代表的数据存储结果转换为方法区中的可运行存储结构
- 在堆中创建代表这个类的java.long.Object实例对象,作为类的访问入口。
2. 验证
3. 准备
4. 解析
5. 初始化
阅读全文
0 0
- 深入理解JVM总结——虚拟机类加载机制
- 深入理解JVM——类加载机制
- 【深入理解JVM】:类加载机制
- 深入理解jvm — 类加载篇
- 《深入理解JVM》--JVM类加载机制总结
- 《深入理解jvm》读书笔记之——类加载机制(类的初始化)
- 深入理解JVM(七)——虚拟机类加载机制
- 深入理解Java虚拟机——JVM类加载机制(类加载过程和类加载器)
- 深入理解JVM之六:类加载机制
- 深入理解JVM(四)-Java虚拟机类加载机制
- 深入理解JVM读书笔记三: 虚拟机类加载机制
- 深入理解JVM(虚拟机类加载机制)
- 深入理解JVM七-虚拟机类加载机制
- 深入理解JVM之六:类加载机制
- 深入理解JVM之六:类加载机制
- 深入理解jvm(三):类的加载机制
- [深入理解JVM 五]---虚拟机类加载机制
- 深入理解JVM(二)-类加载机制
- 求二叉搜索树的第K大节点
- 码云git常用命令
- windows7+hmailserver+squirrelmail搭建邮件服务器
- 时间线MindMap泳道的使用方法
- oracle11g 使用数据泵导出导入数据
- 深入理解JVM——类加载机制
- 初识hibernate,使用idea maven项目搭建
- oracle text全文检索
- Web攻击方式以及解决办法
- osx使用cmake编译opencv错误记录
- owindows解决管理员权限问题-----------世界上最简单的解决方法
- 适配iOS 11
- Spring Boot自定义错误页面
- SQL Server定时任务的一些使用场景及方案(一)——日常任务