JVM加载机制详解
2023-05-02 来源:飞速影视
https://pics7.baidu.com/feed/d62a6059252dd42af5aefd019aec48bccbeab8d2.png@f_auto?token=20e79c701de372ed08cad7121b58905b{}
1 类加载子系统
1.1 类加载子系统介绍
1.类加载子系统负责从文件系统或是网络中加载.class文件,class文件在文件开头有特定的文件标识。 2.把加载后的class类信息存放于方法区,除了类信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)
classLoader只负责class文件的加载,至于是否可以运行,则由Execution Engine决定
如果调用构造器实例化对象,则该对象存放在堆区
1.2 类加载器ClassLoader角色
class file 存在于本地硬盘上,可以理解为设计师画在纸上的模板,而最终这个模板在执行的时候是要加载到JVM当中来根据这个文件实例化出n个一模一样的实例。
class file 加载到JVM中,被称为DNA元数据模板。
在 .class文件 --> JVM --> 最终成为元数据模板,此过程就要一个运输工具(类装载器Class Loader),扮演一个快递员的角色。
1.3 类加载的执行过程
一般我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用。而虚拟机如何加载这些.class文件?.class文件的信息进入到虚拟机后会发生什么变化? 类使用的7个阶段 类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiallization)、使用(Using)和卸载(Unloading)这7个阶段。其中验证、准备、解析3个部分统称为连接(Linking),这七个阶段的发生顺序如下图:
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号