课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
类的加载是程序员在学习java编程开发技术的时候需要重点掌握的编程技术之一,而今天我们就通过案例分析来了解一下具体加载方法都有哪些。
一、类加载过程
1,类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。
2,其中类加载过程包括加载、验证、准备、解析和初始化五个阶段。
二、Java类运行过程
我们编写完的程序都是以java结尾的文件,编译写完的代码都会生成一些后缀为class的字节码文件。
当执行java-jar命令后(以springboot为例),此时会启动一个JVM进程,然后通过类加载机制来将所需要的类加载到JVM中进行运行。
这样一个编译好的系统就可以运行起来了。
三、类加载机制
我们都知道类的加载是一个很繁琐的过程,基本流程如下:
加载-》验证-》准备-》解析-》初始化-》使用-》卸载
四、双亲委托原则
Java中的类加载器
1,启动器加载器:BootstrapClassLoader
一旦JVM启动,那么先就会依托启动类加载器,去加载Java安装目录下的”lib”目录下的核心类库。
2,扩展类加载器:ExtensionClassLoader
这个类加载器也是类似的,就是Java安装目录下,有一个”lib\ext”目录,这里有一些类,就是需要使用这个类加载器来加载的。
3,应用程序内加载器:ApplicationClassLoader
这类加载器就是负责加载ClassPath环境变量中所指定路径中的类,可以理解为加载我们写好的Java代码。这个类加载器就负责加载我们写好的类到内存中。
4,自定义类加载器
除了上面几种,我们还可以自定义类加载器,根据自己的需求加载需要的类。
5,双亲委托机制
JVM类加载器有亲子层级结构的,基于这个亲子层级结构,就有一个双亲委派的机制,也就是当我们加载一个类的时候,先找父亲去加载,不行的话再由儿子来加载。这样的话可以避免多层级的加载器结构重复加载某些类。
6,双亲委派模式的优点:
采用双亲委派模式的是好处是Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次。
其次是考虑到安全因素,java核心api中定义类型不会被随意替换,假设通过网络传递一个名为java.lang.Integer的类,通过双亲委托模式传递到启动类加载器,而启动类加载器在核心JavaAPI发现这个名字的类,发现该类已被加载,并不会重新加载网络传递的过来的java.lang.Integer,而直接返回已加载过的Integer.class,这样便可以防止核心API库被随意篡改。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。