当前位置:网站首页>关于双亲委派机制和类加载的过程
关于双亲委派机制和类加载的过程
2022-07-06 09:20:00 【快醒醒鸭今天你编程了吗?】
我们写的java文件到最终运行,他必须经过编译和类加载两个阶段,而编译阶段的过程就是把
.java文件编译成.class文件,而类加载的阶段就是把.class文件加载到JVM内存里面,加载完毕
会得到一个Class对象,我们可以使用new关键字来实例化这个对象,如下图:

而类的加载过程需要涉及
到类加载器,JVM在运行的时候会产生三个类加载器,这三个类加载器组成了一个层级关系,每一个加载器分别去加载不同作用范围的jar包,比如说Bootstrap Classloader(启动类加载器)
它主要是负责加载java核心类库的加载也就是lib目录下rt.jar和resources.jar等,Extension ClassLoader(扩展类加载器)主要加载lib\ext目录下的一个jar包和class文件,Application ClassLoader(应用类加载器),主要负责当前应用里面classpath下面的所有jar包和class文件,处理系统自己提供的类加载器以外还可以通过ClassLoader类来实现自定义加载器,去满足一些场景需要。

而所谓的双亲委派模型,就是按照类加载器的层级关系,逐层进行委派,比如当我们需要加载一个class文件的时候,首先会去把这个class文件的查询和加载委派给父加载器去执行,如果父加载器无法加载,再尝试自己去加载这个class

我认为这样的好处:
- 安全性:因为这种层级关系实际上代表的是一种优先级,也就是所有的类加载优先要给到启动类加载器,那么对于核心类库中的一些类就没有办法被破坏,比如自己写一个java.lang.String最终还是要交给启动类加载器,自己写的java.lang.String就没办法去覆盖类库中的类。
- 我认为这种层级关系的设计,可以避免重复加载导致程序混乱的一些问题,如果父加载器已经加载过了,那么子加载器就没有必要再去加载了。

而运行结果显示:

边栏推荐
- 9.指针(上)
- 魏牌:产品叫好声一片,但为何销量还是受挫
- Conceptual model design of the 2022 database of tyut Taiyuan University of Technology
- (super detailed II) detailed visualization of onenet data, how to plot with intercepted data flow
- View UI plus releases version 1.1.0, supports SSR, supports nuxt, and adds TS declaration files
- Questions and answers of "signal and system" in the first semester of the 22nd academic year of Xi'an University of Electronic Science and technology
- arduino+DS18B20温度传感器(蜂鸣器报警)+LCD1602显示(IIC驱动)
- Inheritance and polymorphism (Part 2)
- TYUT太原理工大学2022软工导论考试题型大纲
- 1.C语言矩阵加减法
猜你喜欢

TYUT太原理工大学2022“mao gai”必背

MPLS experiment

5. Function recursion exercise

IPv6 experiment

View UI plus released version 1.3.0, adding space and $imagepreview components

TYUT太原理工大学2022数据库大题之概念模型设计

Rich Shenzhen people and renting Shenzhen people

5.函数递归练习

学编程的八大电脑操作,总有一款你不会

E-R graph to relational model of the 2022 database of tyut Taiyuan University of Technology
随机推荐
The latest tank battle 2022 full development notes-1
Decomposition relation model of the 2022 database of tyut Taiyuan University of Technology
3.猜数字游戏
最新坦克大战2022-全程开发笔记-1
2. Preliminary exercises of C language (2)
TYUT太原理工大学2022软工导论考试题型大纲
TYUT太原理工大学2022软工导论大题汇总
3.输入和输出函数(printf、scanf、getchar和putchar)
List set map queue deque stack
Redis cache obsolescence strategy
Share a website to improve your Aesthetics
Alibaba cloud microservices (IV) service mesh overview and instance istio
2.初识C语言(2)
One article to get UDP and TCP high-frequency interview questions!
[while your roommate plays games, let's see a problem]
西安电子科技大学22学年上学期《射频电路基础》试题及答案
Differences and application scenarios between MySQL index clock B-tree, b+tree and hash indexes
View UI Plus 发布 1.1.0 版本,支持 SSR、支持 Nuxt、增加 TS 声明文件
【九阳神功】2016复旦大学应用统计真题+解析
Summary of multiple choice questions in the 2022 database of tyut Taiyuan University of Technology