当前位置: 首页 > news >正文

双亲委派机制的原理和作用

双亲委派机制,就必须弄清楚Java的类加载器。

什么是类加载器

Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内存空间。

类加载器有哪些

主要有三个:

  1. 引导类加载器(Bootstrap ClassLoader):加载Java的核心库(jre/lib/rt.jar),同时加载另外两种类加载器,由C++编写
  2. 扩展类加载器(Extensions ClassLoader):加载Java的扩展库(jre/ext/*.jar)
  3. 应用类加载器(Application ClassLoader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载。

除了上面三种外,还可以自定义类加载器,以方便开发。

类加载器之间的关系

代码示例:

3fced474cd81f4a4dfa77c1715b0e794.png

结果输出:

112cb4e16869e00dd159ecde580f45f6.png

通过这段代码看出,日常编写的代码,是通过Application ClassLoader加载,其父类是Extensions ClassLoader。

实际上,Bootstrap ClassLoader也是Extensions ClassLoader的父类,但Bootstrap ClassLoader由C++编写,在Java中无法获取,所以对外显示为null。


双亲委派机制

双亲委派机制指,当某个特定的类加载器在收到类加载的请求时,会遵循下面的规则顺序:

  1. 先判断被加载的类是否加载过,如果是则结束,否则会将加载任务委托给自己的父亲;
  2. 父类加载器在收到类加载的请求时,也先判断被加载的类是否加载过,如果是则结束,否则同样将加载任务委托给自己的父亲
  3. 不断的循环进行步骤2,直到将加载任务委托给Bootstrap ClassLoader为止。此时,Bootstrap ClassLoader 会先判断被加载的类是否加载过,如果是则结束;

请注意,到这里为止,都只是在转移加载任务的请求,下面将会进行类加载。

  1. Bootstrap ClassLoader会判断能否完成加载任务,如果能则直接加载,否则会将加载任务交给子类加载器;
  2. 子类加载器也会判断能否完成加载任务,如果能则直接加载,否则会再一次将加载任务交给子类加载器;
  3. 不断的循环进行步骤2,直到最后一个类加载器,如果这个类加载器仍然不能够加载这个类,就会抛出一个异常:ClassNotFoundException。

Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?_徐同学呀的博客-CSDN博客_为什么要使用双亲委派模型

 

双亲委派机制的好处

  1. 首先,保证 java核心库 的安全性。如果你也写了一个java.lang.String类,那么JVM只会按照上面的顺序加载jdk自带的String类,而不是你写的String类。
  2. 其次,保证同一个类不会被加载多次。

相关文章:

双亲委派机制的原理和作用

双亲委派机制,就必须弄清楚Java的类加载器。 什么是类加载器 Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内存空间。 类加载器有哪些 主要有三个: 引导类加载器(Bootstrap ClassLoade…...

mac免费杀毒软件哪个好用?如何清理mac系统需要垃圾

CleanMyMac x是一款功能强大的Mac系统优化清理工具,使用旨在帮助用户更加方便的清理您系统中的所有垃圾,从而加快电脑运行速度,保持最佳性能,更加稳定、流畅、快速!!! CleanMyMac X无疑是目前m…...

css 实现太极效果

目录 一、简述二、太极效果制作 一、简述 本次主要介绍::after,::before,box-shadow这三个属性。 ::after,::before这两个是伪类选择器,box-shaow是用来设置元素的阴影效果 before:向选定的元素前插入内容 after:向选定的元素后插…...

【前端基础知识】Vue中的变量不是响应式的吗?属性赋值后视图不变化的原因是什么?

目录 🤔问题📝回答🎨使用场景动态添加属性动态添加数组元素 ❌注意事项$set只能在响应式对象上使用$set不能用于根级别的属性$set的性能问题 📄总结 🤔问题 Vue是一款在国内非常流行的框架,采用MVVM架构&a…...

如何完全卸载linux下通过rpm安装的mysql

卸载linux下通过rpm安装的mysql 1.关闭MySQL服务2.使用 rpm 命令的方式查看已安装的mysql3. 使用rpm -ev 命令移除安装4. 查询是否还存在遗漏文件5. 删除MySQL数据库内容 1.关闭MySQL服务 如果之前安装过并已经启动,则需要卸载前请先关闭MySQL服务 systemctl stop…...

[渗透教程]-004-长城防火墙GFW的原理

文章目录 1. baidu.com 请求过程2. GFW原理2.1 GFW拦截方法1:DNS渲染2.2 通过IP黑名单2.3 VPN阻断1. baidu.com 请求过程 家庭的路由器具备了交换机的功能.域名–>ip,优先检测本地的缓存,没有的话就查找DNS服务器,传输层对应该层的数据进行封装增加了端口的信息,网络层对传输…...

LaTeX基础文本排版命令

LaTeX基础文本排版命令 1. 字体大小2. 字体的粗体与斜体2.1. 粗体2.2 斜体2.3 同时启用粗体和斜体 3. 空格长度4. 高度与宽度尺寸 在LaTeX中,文本排版可以通过简单的命令实现,这些命令可以控制字体大小、粗体与斜体、空格、行高和宽度等方面,…...

PLC模糊控制模糊PID(梯形图实现+算法分析)

博途PLC的模糊PID控制详细内容请查看下面的博客文章: Matlab仿真+博途PLC模糊PID控制完整SCL源代码参考(带模糊和普通PID切换功能)_博途怎么实现模糊pid_RXXW_Dor的博客-CSDN博客模糊PID的其它相关数学基础,理论知识大家可以参看专栏的其它文章,这里不再赘述,本文就双容…...

线程池在Java多线程中的应用

前言 随着计算机硬件和软件技术的不断发展,多线程编程在软件开发中变得越来越常见。然而,使用多线程编程时必须小心谨慎,以确保正确性和可维护性。在这个过程中,线程池成为了一个至关重要的工具。本文将介绍其应用场景、注意事项…...

1997-2021年全国30省技术市场成交额(亿元)

1997-2021年全国30省技术市场成交额 1、时间:1997-2021年 2、范围:30省不含西藏 3、来源:国家统计J 4、指标:技术市场成交额 5、缺失情况说明:无缺失 6、指标解释及用途: 技术市场成交额是一个客观、…...

【C++】面向对象之多态

文章内的所有调试都是在vs2022下进行的, 部分小细节可能因编译器不同存在差异。 文章目录 多态的定义和实现概念引入多态的构成条件虚函数重写通过基类的指针或者引用调用虚函数 override和final 抽象类概念实现继承和接口继承 虚函数表单继承中的虚表打印虚表多继…...

卡尔曼滤波器简介——多维卡尔曼滤波

原文:多维卡尔曼滤波 (kalmanfilter.net) 目录 前言 基本背景 状态外推方程 示例 - 飞机 - 无控制输入 示例 - 带控制输入的飞机 示例 – 坠落物体 状态外推方程维度 线性时不变系统 线性动态系统建模 状态外推方程的推导 状态空间表示形式 示例 - 等速…...

如何用 GPT-4 帮你写游戏?

你知道的,GPT-4 发布了。 目前你想要用上 GPT-4,主要的渠道是 ChatGPT Plus 。作为交了订阅费的用户,你可以在对话的时候选择模型来使用。 另一种渠道,就是申请官方 API 的排队。我在申请 New Bing Chat 的时候,耐心被…...

R语言的贝叶斯时空数据模型实践技术应用

时间-空间数据(以下简称“时空数据”)是最重要的观测数据形式之一,很多科学研究的数据都以时空数据的形式得以呈现,而科学研究目的可以归结为挖掘时空数据中的规律。另一方面,贝叶斯统计学作为与传统统计学…...

Lazysysadmin靶机渗透过程

准备工作 下载好靶机到本地后 VMware导入OVA 启动靶机 扫描信息 首先扫描整个C段发现主机 进一步扫描端口 从扫描结果可知: Samba服务MySQLSSH端口网站端口 先对网站进行目录遍历 发现有wordpress网站和phpmyadmin管理系统 出现了非常多遍My name is togie.可能…...

为什么网络安全缺口很大,招聘却很少?

2020年我国网络空间安全人才数量缺口超过了140万,就业人数却只有10多万,缺口高达了93%。这里就有人会问了: 1、网络安全行业为什么这么缺人? 2、明明人才那么稀缺,为什么招聘时招安全的人员却没有那么多呢&#xff1…...

SpringBoot手册

目录 依赖管理关于各种的 start 依赖关于自动配置关于约定大于配置中的配置SpringBoot 整合 SpringMVC定制化 SpringMVC静态资源处理对上传文件的处理对异常的处理Web原生组件注入(Servlet、Filter、Listener)Interceptor 自定义拦截器DispatcherServlet…...

【Linux】如何实现单机版QQ,来看进程间通信之管道

学会了管道,就可以实现简单的qq哦~ 文章目录 前言一、匿名管道总结 前言 为什么要进行进程间通信呢?因为需要以下这些事: 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 …...

从一到无穷大 #6 盘满排查过程

文章目录 引言df/du 原理排查思路文件系统预留空间进程占用句柄挂载覆盖 引言 核心在于执行df和du的时候发现显示的存储量完全不同,我本地系统盘有99G空间,du显示占用了45G,但是df却显示使用了99G,排查的过程本文所示。 先记录几…...

ChatGPT技术原理 第九章:数据集和训练技巧

目录 9.1 对话数据集 9.2 数据预处理 9.3 预训练技巧 9.4 微调技巧 9.5 多任务学习...

NCR被攻击后服务中断!原是BlackCat勒索软件作祟

近日,在遭到BlackCat勒索软件攻击后,NCR 的 Aloha 销售点平台出现中断。 NCR公司是全球关系管理技术解决方案领导供应商,为全球零售、金融、传讯、制造、旅游、交通及保安等客户提供服务。凭著累积多年的业界知识、专业顾问经验、专业增值应用…...

带你认识什么是BMS(电池管理系统)

文章目录 概述BMS的硬件拓扑BMS的电气架构BMS的功能BMS的总压采集(主板功能)BMS的电流采集(主板功能)BMS的电芯电压和温度采集(从板功能)BMS的SOC、SOP和SOH(ASW计算)BSM的绝缘检测B…...

安装Ubuntu22.04虚拟机的一些常见问题解决方法

文章目录 VirttalBox 开启共享剪切板文件夹、拖放的功能VirtualBox 安装 ubuntu后安装增强工具无效的解决办法解决ubuntu您没有权限查看“ 某某文件夹”的内容所需的权限linux更换源的两种方法[如何在 Ubuntu 20.04 上安装 Visual Studio Code - ](https://zhuanlan.zhihu.com/…...

银河麒麟操作系统,安装Gitlab 基于docker

不废话。直接上干货 操作系统信息 ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Sword) Kernel: 4.19.90-24.4.v2101.ky10.aarch64 Build: Kylin Linux Advanced Server release V10 (SP2) /(Sword)-aarch64-…...

基于Python实现个人手机定位分析

TransBigData是一个为交通时空大数据处理、分析和可视化而开发的Python包。本文就来用它实现个人手机定位分析,感兴趣的小伙伴可以了解一下 但其实交通时空大数据并不仅仅局限于交通工具产生的数据,我们的日常生活中也会产生大量的数据。比如我们的手机…...

Unity Navgation系统杂记

立即停止寻路 使用agent.isStoppedtrue,可以停止寻路,但是有很大的延迟,视觉体验很不好。 使用agent.enabledfalse,通过禁用NavMeshAgent组件的方式实现立即停止寻路。因为组件被禁用可能会产生其它问题,比如失去了Ob…...

[2021.11.9]lighteffect架构优化详细设计文档

1 lighteffect系统架构图 图1-1 整改前lighteffect系统架构图 上图为整改前lighteffect系统架构图,存在的问题如下: (1)代码bug 原因:由于系统中兼容了lighteffect和lighteffect2,写代码时只记了一个,出现代码bug。…...

经典回归算法

回归的概念 回归方程: 写成矩阵: 核心问题,构建预测函数z来映射特征矩阵x和标签y的线性关系 预测的目标值,有连续值也有离散值 连续值,就直接预测输出就行离散值,需要在输出端加一个变换函数例如。Si…...

Python两三行代码轻松批量添加~防韩还是很有必要的~

人生苦短,我用python 一直想做一个这种系列的但是因为七七八八的事情总是忘记, 今天正好有空,来开整一下~ 首先, 天冷防韩是什么梗? 【天冷防韩】 “天冷防韩”是“天冷防寒”的谐音, 不过“寒”指的…...

开心消消乐

给定一个 N 行 M 列的二维矩阵,矩阵中每个位置的数字取值为 0 或 1,矩阵示例如: 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 现需要将矩阵中所有的 1 进行反转为 0,规则如下: 当点击一个 1 时,该 1 被反转为 0&am…...

wordpress增加搜索框/邮件营销

★点开后电脑将在某一时间段后自动关机&#xff0c;输入如同“我是猪”一类的话语&#xff0c;即可结束&#xff0c;&#xff0c;&#xff0c;否则关机任务则会一直处于倒计时状态。。#include<stdio.h> //标准输入输出库函数 #include<stdlib.h> //可以输入…...

昆明网站建设哪家合适/app推广平台

Shutdownnormal:等待所有用户断开连接时&#xff0c;关闭数据库、卸载数据库和关闭实例。immediate&#xff1a;回滚所有用户事务&#xff0c;关闭数据库、卸载数据库和关闭实例.(注意是回滚)。transactional&#xff1a;当所有用户事务结束时&#xff0c;关闭数据库、卸载数据…...

wordpress加载动画插/seo建站要求

表空间是oracle数据库中最大的逻辑单位与存储空间单位&#xff0c;数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件&#xff0c;每一个表空间由一个或多个数据文件组成&#xff0c;一个数据文件只可与一个表空间相联系&#xff0c;这是逻辑与物理…...

安丘网站建设开发/seo外包收费

概要 本分步指南介绍了如何在 Windows XP 中使用 Windows 资源管理器命令行参数。 更多信息 使用命令行参数&#xff0c;您既可以自定义 Windows 资源管理器启动时使用的默认视图&#xff0c;也可以指定在从命令提示符启动时所看到的视图。 您可以在 Explorer.exe 命令中使…...

榆垡网站建设/搜一搜百度

这个教程主要是分享如何快速组建WAMP开发环境&#xff0c;对于软件的详细配置&#xff0c;自行参考文档或搜索。 Visual C Redistributable for Visual Studio 2015 下载地址&#xff1a;https://www.microsoft.com/zh-CN/download/details.aspx?id48145 (个人测试window10下不…...

重庆忠县网站建设公司哪里有/市场调研方案范文

前面的级数求解的基础终于结束了。开始到了应用的环节。虽然前面所举例的方程都是无法初等地求解&#xff0c;但是总是一个方程一个方程的求级数解也是够麻烦的。能否像初等求解那样化归出一种类型的方程&#xff1f;就像齐次方程、恰当方程那样&#xff1f;接下来可以看到&…...