【JVM】总结(四)——虚拟机类加载机制

  • Post author:
  • Post category:其他


一、概念

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

二、类加载的时机

类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Linking)。这7个阶段的发生顺序如图:

加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定。

什么时候进行类加载的第一个阶段:加载?Java虚拟机规范中并没有进行强制约束,可以交给虚拟机的具体实现来自由把握。但是对于初始化阶段,虚拟机严格规定了有且只有5种情况必须立即对类进行初始



版权声明:本文为sz15732624895原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。