java类加载流程及原理(java加载动态库原理)

Java类的基本概念

Java是一门面向对象的编程语言,它的代码最终会被编译成字节码,而字节码才是真正被JVM执行的。每个Java文件都应该对应一个类,这个类的原始代码被保存在.java文件中,编译后的字节码则被保存在.class文件中。

Java类加载的过程

Java类加载的过程分为以下几个步骤:

  1. 加载(Loading):类加载的第一步是加载,指的是将.class文件中的字节码内容读入到JVM中,并为之创建一个类的描述对象(Class对象)。
  2. 链接(Linking):链接又分为三个步骤:
    • 验证(Verification):这个步骤的目的是确保类文件的字节码是正确的,符合JVM要求的规范。主要包括验证文件格式、验证字节码、验证符号引用等。目的是确保字节码能被安全地执行下去,不会出现安全问题。
    • 准备(Preparation):这个步骤主要是为类中的静态变量在内存中分配空间,并设置默认值。这里并不会初始化这个静态变量,只是为之分配空间,让其有一个默认值。
    • 解析(Resolution):解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。在解析阶段可以使用类或接口中的全限定名查找类或接口、字段、方法在内存中的具体地址,以便于后续运行时的缺省调用。
  3. 初始化(Initialization):这个步骤主要是为类的静态变量赋初值,并执行静态语句块中的代码。

类加载器的分类

在Java中,不同的类加载器承担着不同的任务,Java类加载器主要分为以下几类:

  • 引导类加载器(Bootstrap ClassLoader):是JVM内置的,用于加载JDK自带的核心类库,如rt.jar等。
  • 扩展类加载器(Extension ClassLoader):扩展类加载器用于加载Java虚拟机拓展的核心类库。
  • 系统类加载器(System ClassLoader):是Java虚拟机加载应用程序时的类加载器,默认也是Java类加载器中的后起之秀。它负责将系统类路径(CLASSPATH)所指的JAR包或目录中包含的类库加载进内存。
  • 自定义类加载器(Custom ClassLoader):除了系统提供的类加载器,开发者也可以自己实现一个类加载器来完成自己的特定任务。

通过上述内容,我们可以深入了解Java类加载的过程和类加载器的分类,对于Java软件开发和日常开发工具的应用也有很大帮助。

java类加载流程及原理(java加载动态库原理)

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/java60java-2.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月24日 下午10:17
下一篇 2023年4月24日 下午10:17

猜你喜欢