【读书会第十二期】《深入理解Java虚拟机》 第4章 Java虚拟机类加载机制

举报
小浪 发表于 2022/05/06 11:47:53 2022/05/06
【摘要】 类加载机制:java虚拟机把描述的类的数据从Class文件加载到内存,并对数据进行校验、转化解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。 在java语言里面类型的加载、连接和初始化过程都在程序运行期间完成的,这种策略让类加载时增加一些性能的开销,但是却为Java应用提供了极高的扩展性和灵活性。例如:编写一个面向接口的应用程序,可以等到运行时再指...

类加载机制:

java虚拟机把描述的类的数据从Class文件加载到内存,并对数据进行校验、转化解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。

 在java语言里面类型的加载、连接和初始化过程都在程序运行期间完成的,这种策略让类加载时增加一些性能的开销,但是却为Java应用提供了极高的扩展性和灵活性。例如:编写一个面向接口的应用程序,可以等到运行时再指定其实际的实现类,用户可以通过java预置的或自定义类加载器,让某个本地应用程序在运行从网络或者其他地方加载一个二进制流为其程序代码的一部分。

一个类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期将会经历 加载、验证、准备、解析、初始化、使用、卸载七个阶段,其中验证、准备、解析三个阶段统称为连接,七个阶段发生顺序如图

类加载过程

类加载时机

类加载过程

验证

解析

类加载器

虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进 制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取 所需要的类。实现这个动作的代码模块被称为"类加载器'。

类加载器方法

双亲委派原理

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。