java类加载过程详解(Java自定义类加载器)

Java类加载过程

Java类的加载是Java程序运行过程中的一部分,是Java虚拟机将类文件的二进制数据转换为可以被虚拟机执行的操作指令。Java类属于动态加载,即程序的运行过程中,当需要使用某个类时,才会将这个类加载到内存中。

类加载过程的7个阶段

Java类加载的过程分为7个阶段,分别是加载、验证、准备、解析、初始化、使用、卸载。

加载:是指查找字节码,并载入JVM中。这个阶段可以使用两种方式,一种是从本地文件系统直接加载字节码文件,二是通过网络下载远程字节码。

验证:是指验证字节码是否符合规范,包括验证字节码文件格式、元数据、字节码的语义和内部引用等,以确保JVM能够安全、正确地执行字节码。

准备:是指为类的静态变量分配内存,并设置默认值。这个过程不会执行静态赋值语句和静态代码块中的代码。

解析:是指将常量池中的符号引用替换成直接引用的过程,以使得JVM能够定位到相关的类,方法和变量在内存中的地址。

初始化:是指执行方法,包括执行静态赋值语句和静态代码块中的代码。这个过程保证了程序在使用这个类的时候,类的静态变量已经准备好,且类已经初始化。

使用:是指通过调用类的方法和访问类的变量来使用类的过程。在使用的过程中,类可以被多个线程同时使用,因此需要确保线程安全。

卸载:是指将不再需要的类从内存中卸载,释放内存空间。

java类加载过程详解(Java自定义类加载器)

类加载器

Java虚拟机定义了三种类加载器,分别是启动类加载器、扩展类加载器和应用程序类加载器。

启动类加载器:负责加载Java核心类库,如java.lang.*等。

扩展类加载器:负责加载Java的扩展类库,如javax.*等。

应用程序类加载器:负责加载程序自己编写的类。

Java类加载器采用了自下而上的双亲委托模型,这个模型可以保证安全性和各种jar包的正常运行。类的加载过程会从当前类加载器所在目录开始依次向上搜索,如果在某一层搜索到对应的类,则直接返回类,如果最后没找到,则抛出异常。

总之,类加载器和类的加载过程是Java虚拟机中不可或缺的一部分,熟悉类的加载过程和类加载器的作用,对于我们理解并发编程、Java应用开发等都有很大帮助。

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

郑重声明:

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

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

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

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

(0)
上一篇 2023年4月24日 下午8:49
下一篇 2023年4月24日 下午8:50

猜你喜欢