jdk9 Jvm的类加载机制

本文介绍了JVM的类加载机制,从加载、链接(验证、准备、解析)、初始化等阶段详细阐述,并探讨了类加载器,特别是双亲委派模型的工作原理。在JDK9中,类加载器发生了变化,ExtensionClassLoader被PlatformClassLoader取代,启动类加载器的委派关系也有所调整。文章适合对JVM感兴趣的开发者阅读。
摘要由CSDN通过智能技术生成

前言

昨天说今天更新一些jvm的内容。jvm的类加载模型在jdk9发生过变化。现在我们从jdk7以前开始谈起,聊一聊jvm的类加载机制。

标题上的内容在最后,只想看变化的往后翻。

文中内容大量取自 周志明 深入理解jvm 第三版

类加载的时机

.class文件平常是躺在磁盘上的,而我们需要使用它的时候就需要把它加载到内存中去,当我们不再使用它就应该把它卸载。

一个类从加载到虚拟机开始直到卸载需要经历以下过程:

loding 加载

loading的过程将字节码文件以二进制字节流读入内存,把其中定义的内容转化为方法区(Method Area)中的运行时数据结构,然后生成一个代表这个class的java.lang.Class对象,我们在编程时就可以通过这个对象来访问方法区中定义的类数据

linking 这一步分为三个阶段,直接解释为链接

verification 验证:  当然了,加载需要判断这个.class文件的格式到底符不符合规范,判断一下其中有没有恶意代码等等

preparation 准备: 现在我们的.class文件通过了验证这一步,在preparation这里jvm会给类中定义的static变量分配内存并设置初始值,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值