【JVM】什么是双亲委派机制?

news2024/12/26 8:51:04

一、为什么会有这种机制?

        类加载器将.class类加载到内存中时,为了避免重复加载(确保Class对象的唯一性)以及JVM的安全性,需要使用某一种方式来实现只加载一次,加载过就不能被修改或再次加载。

二、什么是双亲委派机制?

(1)当加载一个类时,先判断此类是否已经被加载,如果类已经被加载则返回;

(2)如果类没有被加载,则先委托父类加载(父类加载时会判断该类有没有被自己加载过),如果父类加载过则返回;如果没被加载过则继续向上委托;

(3)如果一直委托都无法加载,子类加载器才会尝试自己加载。

 注:jre/lib包下的jar在JVM启动时就已经被加载到虚拟机中了,当外部定义的[包路径+类名]和jre/lib包下的jar中类一样时,由于父加载器检测此类名已经被加载,所以会拒绝加载。

三、如何打破双亲委派机制?

(一)为什么要打破双亲委派机制?

        有时我们需要多次加载同名目录下的类,比如:当我们在Tomcat上部署多个服务时,不同服务上可能依赖了不同版本的第三方jar,如果此时使用双亲委派机制加载类,会导致多个服务中第三方jar只加载一次,其他服务中的其他版本jar将不会生效,导致请求结果异常。为了避免这种情况,我们需要打破双亲委派机制,不再让父类[应用类加载器]加载,而是为每个服务创建自己的子类加载器。

(二)如何打破双亲委派机制?

        打破双亲委派有两种方式:(1)不委派【SPI机制】;(2)向下委派。

        Tomcat使用父类加载器加载了公用的jar,对于非公用的jar则使用自己的子类加载器进行单独加载。打破双亲委派需要重写findLoadedClass()方法。

 

 


  • 参考:双亲委派机制及打破双亲委派示例-腾讯云开发者社区-腾讯云
  • 参考:JVM系列(三):打破双亲委派及案例_jvm打破双亲委派代码_August_Z的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/603017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker安装 sqlserver2017 或者 2008

一、必要条件 服务器的运行内存必须大于2GB 二、拉取2017镜像 docker pull mcr.microsoft.com/mssql/server:2017-latest三、启动镜像 docker run --name sqlserver2017 --restart always -v /home/ceshi1:/var/opt/mssql -d -e ACCEPT_EULAY -e SA_PASSWORDqwer!#123 -…

C语言参悟-运算符表达式和语句

C语言参悟-运算符表达式和语句 一、概述二、运算符0. 运算符分类1. 数学运算符2. 逻辑运算符3. 二进制运算符4. 便捷运算符 三、表达式四、语句 一、概述 在我刚开始学C语言的时候,语句和运算符号这些对我来说还是很陌生的。 现在来看我对于这个的理解其实就是一种…

AUTOSAR架构介绍

简介 AUTOSAR(AUTomotive Open System ARchitecture)是一种面向汽车电子系统的软件架构标准。AUTOSAR为汽车电子系统提供一种开放式的软件架构标准,以促进汽车电子系统的可重用性、互操作性和可扩展性。它包括一系列的规范和标准&#xff0c…

Force Dimension 全系列触觉反馈装置

力觉或触觉是人体感官中具有双向传递信息能力的信息载体。借助于力反馈,人们可以真实的按照人类的肢体语言进行人机自然互动和信息交流,用户通过应用力反馈,可以获得和触摸实际物体时相同的运动感,从而产生更真实的沉浸感。 力反馈…

毕业遭失业,前途一片黑暗...不得已转行软件测试,太多心酸和无助...

大家好,我叫小涵,一名应届毕业生,目前已经成功转行互联网。写这篇文章的目的是因为很多人不喜欢自己的现状,想通过学习改变,奈何没有出路,所以想为这部分人提供一些思路;其次文章会总结我自己转…

汽车电子设计之SBC芯片

参考英飞凌SBC官网资料:https://www.infineon.com/cms/cn/product/automotive-system-ic/system-basis-chips-sbc/ SBC芯片在汽车电子领域可谓占一席之地了。那么什么是SBC?怎么用?用在哪里?主要特性? 目录 1.什么是…

unity Sockets通信 使用UDP协议,设置客户端电脑网络配置,使用新线程获取数据,解决卡顿问题,

今天调试和服务器连接,发现始终获取不到服务器的数据, 电脑和服务器都在同一局域网,仍然获取不到, 下面是电脑环境配置, 第一步: 设置网络为专用网络,然后点击配置防火墙和安全设置,…

Unity——2D小游戏笔记整理

【每日一句:清晨和夜晚都请用尽全力去生活】 目录 一、环境搭建 二、人物 三、相机跟随人物移动 四、平铺精灵 五、血条跟随敌人行走 六、脚本逻辑 【玩家行走方法】 【玩家跳跃方法】 【改变玩家血量值方法】 【创建玩家子弹方法】 【主角血量&#xff…

《计算机网络——自顶向下方法》精炼——3.7(1)

少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向 文章目录 拥塞控制方法ATM ABR拥塞控制 TCP拥塞控制TCP拥塞控制算法的实现慢启动拥塞避免快速恢复总结 拥塞控制方法 在上一篇文章中,我们介绍了在数据传输过程中出现的问题。本节将简要介…

Bitbucket 的SSH keys 突然无法识别 -> Permission denied (publickey)问题

Bitbucket 的SSH keys 突然无法识别 -> Permission denied (publickey)问题 用了几年的SSH keys突然出现Permission denied (publickey)问题,如下图所示: 1、首先排查项目权限问题,确认其他账号可更新代码,排除 2、排除SSH k…

【软件测试】白盒测试与黑盒测试

白盒测试与黑盒测试 测试用例定义生成的基本准测设计步骤作用测试数据和测试用例的区别 黑盒测试定义优点缺点黑盒测试的实施过程等价类划分法边界值分析法错误推测法因果图判定表判定表例题 白盒测试介绍覆盖程度基本路径覆盖程序流程图简化成控制流图计算圈复杂度导出测试用例…

chatGPT 学习笔记

学习笔记:chatGPT chatGPT 概述 什么是 chatGPT ?(要说明定义、来源、功能和特点) ChatGPT 是 OpenAI 开发的一个大型预训练语言模型,它基于 GPT-3.5 模型,可以在对话中生成类似人类的文本响应,简称对齐。它使用自监…

基于节点分层的配网潮流前推回代方法【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

java的UDP(一)

文章目录 1. 简介2. UDP客户端3. UDP服务器4. DatagramPacket类 1. 简介 Java中的UDP实现分为两个类:DatagramPacket和DatagramSocket。DatagramPacket类将数据字节填充到UDP包汇总,这称为数据报,由你来解包接收的数据报。DatagramSocket可以…

2023北京大学首席营销官CMO高级研修班简介

【课程背景】自 2022 年以来,营销新趋势呈现以下变化:消费渠道多元化,社会化媒体 成为信息主要渠道,流量红利消失,数字营销成当下主流:元宇宙数字营销成热点;私域运营更受品牌重视;国…

MySQL主存复制

介绍 配置-主库master 第一步:修改MySQL数据库的配置文件/etc/my.cnf [mysqld] log-binmysql-bin #[必须]启用二进制日志 server-id100 #[必须]服务器唯一id第二部:重启MySQL服务 systemctl restart mysqld第三步:登录MySQL操作&#x…

Talk预告 | 新加坡国立大学张傲:10%成本定制类 GPT-4 多模态大模型

本期为TechBeat人工智能社区第502期线上Talk! 北京时间06月01日(周四)20:00,新加坡国立大学在读博士生 — 张傲的Talk将准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “10%成本定制类 GPT-4 多模态大模型 ”,届时将介…

RemoteSensing投稿流程

RemoteSensing投稿流程,底部有官网地址和word模板 RemoteSensing投稿流程,遇到的坑RemoteSensing期刊官网地址,模板 RemoteSensing投稿流程, ##3.16 Submit (第一次提交) 3.17 Under review (正…

中核浦原一号数字员工诞生,实在智能为智能制造再添强大引擎

头戴博士帽,脚踩喷气引擎,身披“科技蓝”披风,今年的全国科技工作者日,一位硬“核”数字员工正式诞生! 这就是由上海中核八所科技有限公司(下称中核八所)人工智能研发中心为上海中核浦原有限公司…

网工内推 | 上海网工专场,NP认证,朝九晚六,多次调薪机会

01 上海伍贤信息技术股份有限公司 🔷招聘岗位:网络工程师 🔷职责描述: 1、在网络基础设施方面提供日常支持,例如,WIFI、局域网、视频会议等。 2、协助管理亚太地区的网络安全服务(防火墙/代理/…