JVM中是如何实现类的动态加载与初始化过程的?

2026-05-22 06:150阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3347个文字,预计阅读时间需要14分钟。

JVM中是如何实现类的动态加载与初始化过程的?

Java虚拟机简介Java虚拟机将类的字节码加载到内存中,对数据进行校验、转换和初始化,最终形成可供虚拟机直接使用的Java类型。这一过程称为虚拟机的类加载机制。

一、介绍

  Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这个过程称为虚拟机的类加载机制。与那些在编译阶段需要进行连接的语言不同,在 Java 语言里面,类型的加载、连接、初始化、过程都在运行期间完成,这种策略让 Java 语言提前编译会遇到一些困难,也会让类加载时增加一些性能开销,但带来的好处也是很明显,让 Java 语言有了很高的灵活性。如:编写一个面向接口的程序,等到运行的时候再指定其实际的实现类(内部实现类),用户可以通过 Java 预制的或自定义类加载器,让某个本地的应用程序在运行的时候从网络或者其他地方加载一个二进制流作为其程序代码的一部分(切片AOP类似)。

二、类加载的时机

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

  

  加载、验证、准备、初始化、卸载这五个部分的顺序是确定的,类型的加载必须按照这五个步骤按部就班地开始,而 解析阶段 则不一定,它在某些情况可以在初始化之后开始,为了支持 Java 的动态绑定(运行时绑定特性)。

阅读全文

本文共计3347个文字,预计阅读时间需要14分钟。

JVM中是如何实现类的动态加载与初始化过程的?

Java虚拟机简介Java虚拟机将类的字节码加载到内存中,对数据进行校验、转换和初始化,最终形成可供虚拟机直接使用的Java类型。这一过程称为虚拟机的类加载机制。

一、介绍

  Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这个过程称为虚拟机的类加载机制。与那些在编译阶段需要进行连接的语言不同,在 Java 语言里面,类型的加载、连接、初始化、过程都在运行期间完成,这种策略让 Java 语言提前编译会遇到一些困难,也会让类加载时增加一些性能开销,但带来的好处也是很明显,让 Java 语言有了很高的灵活性。如:编写一个面向接口的程序,等到运行的时候再指定其实际的实现类(内部实现类),用户可以通过 Java 预制的或自定义类加载器,让某个本地的应用程序在运行的时候从网络或者其他地方加载一个二进制流作为其程序代码的一部分(切片AOP类似)。

二、类加载的时机

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

  

  加载、验证、准备、初始化、卸载这五个部分的顺序是确定的,类型的加载必须按照这五个步骤按部就班地开始,而 解析阶段 则不一定,它在某些情况可以在初始化之后开始,为了支持 Java 的动态绑定(运行时绑定特性)。

阅读全文