虚拟机是如何加载类的
一、概述 首先先来看几个问题 jvm是如何加载这些Class文件的? jvm加载一个Class文件需要哪些步骤? Class文件中的信息进入到虚拟机后会发生什么变化? 接下来看看jvm加载class文件的概述: jvm把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。这句话差不多已经回答上面三个问题的大部分了。 与那些在编译是需要进行连接工作的语言不同,在Java语言里面,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载是稍微增加一些性能开销,但是却能为Java应用程序提供高度的灵活性,Java中可以动态的扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。比如编写一个使用接口的应用程序,可以等到运行时在指定其实际的实现。这种组装应用程序的方式广泛应用于Java程序之中。 二、要点 类从被加载到jvm内存中开始,到卸载出内存为止,它的生命周期包括了一下步骤:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Useing)和卸载(Unloading)七个阶段。其中的验证、准备和解析三个部分统称为链接(Linking)