Java中的类加载器

news2024/11/20 1:25:48

 类加载器

1.什么是类加载器?

  1. 启动类加载器(Bootstrap ClassLoader):这是JVM自带的类加载器,负责加载Java的核心类库,如rt.jar等。由于安全原因,启动类加载器加载的类不能被其他类加载器加载的类所引用。
  2. 扩展类加载器(Extension ClassLoader):负责加载Java的扩展类库,一般位于$JAVA_HOME/jre/lib/ext目录下。
  3. 系统类加载器(System ClassLoader):也称为应用类加载器(Application ClassLoader),它负责加载应用程序的类路径(classpath)下的所有类。
  4. 自定义类加载器:开发者可以通过继承java.lang.ClassLoader类来自定义类加载器,以满足特殊需求,如热部署、代码加密等。

2.什么是双亲委派机制?

        Java的类加载器采用双亲委派模型(Parent Delegation Model)。

        当一个类加载器收到类加载请求时,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成。每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中。只有当父类加载器无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子类加载器才会尝试自己去加载。

举个例子:如图

        1.Student类:这是一个我们自己加载的类。一开始准备在AppClassLoader加载,但它先不加载,它委托给它的上级加载器ExtClassLoader加载,然后ExtClassLoader继续向上委托。但Student类不在JAVA_HOME/jre/lib目录或JAVA_HOME/jre/lib/ext目录下,因此这两个加载器都不会加载Student类。这时候才会由AppClassLoader加载。

        2.String类:同上,它会从AppClassLoader一路向上委托,因为String类在JAVA_HOME/jre/lib目录中,因此BootStrapClassLoader就会加载String类。

JVM为什么采用双亲委派机制?

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

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

相关文章

Windows如何安装JDK

JDK和JRE简介 JDK:Java Development ToolKit java开发工具包,包含JRE针对java程序开发者 JRE:Java Runtime Environment java程序的运行环境针对java使用者来说 下载JDK,进入官网下载 Oracle官网 双击下载好之后的exe文件&#…

【Java集合进阶】数据结构(平衡二又树旋转机制)数据结构(红黑树、红黑规则、添加节点处理方案详解)

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

【大数据】Apache Knox 概述

Apache Knox 概述 1.概述1.1 Kerberos 封装1.2 简化客户端证书的管理1.3 Apache Ranger 集成1.4 Hadoop URLs VS Knox URLs 2.自定义 Apache Knox2.1 Topology2.2 Provider2.3 Services2.4 Personalized services 3.Tips3.1 Setting up SSL3.2 常见问题3.2.1 Bulky answer3.2.2…

ui生成代码详细教程

被askmanyai的图生代码技术秀到了!前端开发效率,提升到秒级 完全吊打了阿里的图生代码技术! 上传一张网站图片或者UI稿,然后用askmanyai生成实现这个网站的代码的教程来啦! 在askmanyai的中文网站上一分钟就能实现&…

基础算法---二分查找

文章目录 基本思想1.数的范围2.搜索旋转排序数组3.搜索插入位置4.x的平方根总结 基本思想 二分查找的必要条件并不是单调,而是当我给定一个边界条件,然后左边满足这个边界条件,右边不满足这个边界条件,然后可以查找这个临界点&am…

统一所有 LLM API:支持预算与速率限制 | 开源日报 No.229

BerriAI/litellm Stars: 6.7k License: NOASSERTION litellm 是一个使用 OpenAI 格式调用所有 LLM API 的工具。它支持 Bedrock、Azure、OpenAI、Cohere、Anthropic 等 100 多种 LLMs,提供企业级代理服务器和稳定版本 v1.30.2。 主要功能和优势包括: 将…

电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型

文章目录 电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型前言理论推导仿真验证总结参考文献 电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型 前言 总结下电机控制中的有功磁链Active Flux(AF)模型。 纯小白,如有不当,轻…

OceanBase V4.2特性解析:用 Show Trace 快速定位数据库性能瓶颈

在数据库日常运维中,当遇到慢SQL问题时,若无法迅速查明原因,将极大地影响用户的使用感受,甚至可能引发业务或服务的中断。相较于单机数据库,分布式数据库系统因其涉及多个节点和多组件的协同工作,集群规模可…

数仓建模—物理数据模型

文章目录 数仓建模—物理数据模型什么是物理数据模型物理数据模型示例如何构建物理数据模型物理数据模型与逻辑数据模型逻辑模型和物理模型之间有什么关系逻辑数据模型的好处物理数据模型的好处数仓建模—物理数据模型 前面我们讲了数据模型和逻辑数据模型,你可以参考前面的文…

Linux配置环境变量_推荐的方式

Linux配置环境变量_推荐以下两种方法: (1)用户环境变量:编辑用户目录下 ~/.bashrc、~/.bash_profile 或 ~/.profile文件 (2)系统环境变量:在/etc/profile.d/目录,创建独立的.sh文件 环境变量脚本文件的执行顺序 /etc/profile-&g…

npm i 依赖下载失败

git config --global url."https://".insteadOf git://解决npm install 报错 npm ERR code 128 Permission denied_please make sure you have the correct access right-CSDN博客

paddlepaddle-gpu安装

背景 之前安装paddlepaddle-gpu遇到各种问题,安装不成功,之前使用了wsldocker的方式,可查看我之前博客:记录paddlepaddle-gpu安装,这要会导致我整个开发流程比较割裂 cuda版本 强烈推荐cuda11.8,paddlep…

flutter release 报错 Error: SocketException: Failed host lookup:

flutter 的 debug 模式没有任何问题 ,打了release 包后一直报下面的错,查了一下是 因为没有网络权限 Error: SocketException: Failed host lookup: yomi-test-aws-sg.yomigame.games (OS Error: No address associated with hostname, errno 7) 按照下…

C语言-rand+srand+time的使用

1.随机数字的生成 rand 随机数字的生成需要rand&#xff0c;这里需要知道的是rand需要头文件是stdlib&#xff0c;也就是#include<stdlib.h>。 这里的循环可以用for 所以我们可以在主函数里面写出 #include<stdio.h> #include<stdlib.h>//rand头文件int …

中仕公考:教师编制和事业单位d类一样吗?

教师编制和事业单位D类在考试内容、专业要求、晋升途径等方面有很大的不同中仕为大家介绍一下&#xff1a; 考试内容&#xff1a;教师编的考试包括教育综合知识和学科专业知识&#xff0c;有的地区会额外考公共基础知识。事业单位D类的考试更侧重于职业能力倾向测验和综合应用…

机器学习理论公式推导及原理—决策树

机器学习公式推导及原理—决策树 根据西瓜书中的公式与内容来进行推导和实现 算法原理 从逻辑角度&#xff0c;一堆if else语句的组合从几何角度&#xff0c;根据某种准则划分特征空间。最终目的&#xff1a;将样本越分越“纯。 信息熵的概念 自信息&#xff1a;是指随机变量…

嵌入式学习55-ARM4(ADC和I²C)

1、什么是ADC,模拟量和数字量有什么特点&#xff1f; ADC&#xff1a; …

Review on Psychological Stress Detection Using Biosignals 利用生物信号检测心理压力综述

https://ieeexplore.ieee.org/document/8758154 问题背景 和压力相关的生物信号包括&#xff1a; 生理&#xff1a;EEG、心电图、EDA、肌电图物理测量&#xff1a;呼吸频率、言语、皮肤温度、瞳孔大小、眼睛活动 压力的维度&#xff1a;心理、行为和生理 压力体验与反馈 下…

【VI/VIM】基本操作备忘录

简介 新建/打开文件 工作模式 常用命令 移动命令 文本选中 撤销、删除 复制粘贴 替换 缩排 查找 替换 插入 分屏 练习

API请求报错 Required request body is missing问题解决

背景 在进行调用的时候&#xff0c;加载方法&#xff0c;提示以下错误 错误信息如下&#xff1a; {"code": 10001,"msg": "Required request body is missing: XXX","data": null,"extra": null }Required request body…