【Java小知识点】类加载器的区别

🎄欢迎来到@边境矢梦°的csdn博文🎄

🎄本文主要梳理Java类加载器的区别🎄
🌈我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生🌈
🎆喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路🎆

Ps: 月亮越亮说明知识点越重要 (重要性或者难度越大)🌑🌒🌓🌔🌕  

在Java中,类加载器(Class Loader)根据其加载类的来源和工作方式可以分为不同的分类。主要的类加载器分类如下:

  1. 启动类加载器(Bootstrap Class Loader)

    • 启动类加载器是Java虚拟机的一部分,它负责加载Java平台核心库(Java API的一部分,如java.langjava.util等)。
    • 它是虚拟机本身的一部分,通常由C++编写,不是一个Java对象,也不继承java.lang.ClassLoader
  2. 扩展类加载器(Extension Class Loader)

    • 扩展类加载器负责加载Java的扩展库(Java标准库之外的一些功能,位于jre/lib/ext目录下)。
    • 通常使用Java编写,是标准的ClassLoader的子类。
  3. 应用程序类加载器(Application Class Loader)

    • 应用程序类加载器是最常用的加载器,负责加载应用程序的类,包括应用程序自身的类和第三方类库。
    • 通常是系统类加载器的子类,由Java编写。
  4. 自定义类加载器

    • 开发者可以创建自定义类加载器,以实现特定的需求,例如从网络加载类、加密类文件等。
    • 自定义类加载器需要继承java.lang.ClassLoader类,并覆盖其中的方法,例如findClassloadClass

另外,还可以根据加载类的顺序将类加载器分为以下三个主要类别:

  1. 双亲委派模型

    • Java类加载器遵循双亲委派模型,即每个类加载器在尝试加载一个类之前,会先委派给其父加载器。这种模型有助于确保类加载的一致性和安全性。
    • 如果父加载器找不到类,子加载器才会尝试加载。这意味着一些核心库类由启动类加载器加载,而应用程序类由应用程序类加载器加载。
  2. 扩展类加载器和应用程序类加载器

    • 扩展类加载器和应用程序类加载器通常是系统类加载器的子类,它们负责加载Java类库和应用程序的类。
    • 这两个加载器通常是自定义类加载器的父加载器,因此开发者可以扩展它们以实现自定义加载行为。
  3. 自定义类加载器

    • 自定义类加载器允许开发者根据需要实现特定的加载行为,可以加载网络上的类、加密的类文件等。
    • 自定义类加载器通常不是双亲委派模型中的一部分,开发者需要自行实现加载逻辑。

这些类加载器的分类和加载机制在Java应用程序的类加载过程中起到重要的作用,确保类能够正确加载和协同工作。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】Dockerfile使用技巧

开启Buildkit BuildKit是Docker官方社区推出的下一代镜像构建神器,可以更加快速,有效,安全地构建docker镜像。 尽管目前BuildKit不是Docker的默认构建工具,但是完全可以考虑将其作为Docker(v18.09)的首选…

黔院长 | 邀您一同共筑养生健康项目!

黔院长,作为一家有百年技术传承并致力于打造大健康产业的企业,为更好的践行“为健康而生,助天下无疾”的初心和使命,更好的让健康事业造福百姓,让更多的人能够从这份事业当中获益,现面向全国火热招商&#…

【Chrome】使用k8s、docker部署无头浏览器Headless,Java调用示例

什么是无头浏览器? 无头浏览器是一种没有图形用户界面的浏览器。无头浏览器不通过其图形用户界面(GUI)控制浏览器的操作,而是使用命令行。 为什么要用Chrome无头? Chrome Headless用于抓取(谷歌)、测试(开发者)和黑客(黑客)。搜索引擎&…

短视频矩阵系统源码/技术应用搭建

短视频矩阵系统开发围绕的开发核心维度: 1. 多账号原理开发维度 适用于多平台多账号管理,支持不同类型账号矩阵通过工具实现统一便捷式管理。(企业号,员工号,个人号) 2. 账号矩阵内容开发维护 利用账号矩…

香港科技大学广州|可持续能源与环境学域博士招生宣讲会—广州大学城专场!!!(暨全额奖学金政策)

香港科技大学广州|可持续能源与环境学域博士招生宣讲会—广州大学城专场!!!(暨全额奖学金政策) “面向未来改变游戏规则的——可持续能源与环境学域” ���专注于能源环…

代码随想录算法训练营第三十一天丨 贪心算法part02

122.买卖股票的最佳时机 II 思路 本题首先要理清楚两点: 只有一只股票!当前只有买股票或者卖股票的操作 想获得利润至少要两天为一个交易单元。 #贪心算法 这道题目可能我们只会想,选一个低的买入,再选个高的卖,…

如何把Elasticsearch中的数据导出为CSV格式的文件

前言| 本文结合用户实际需求用按照数据量从小到大的提供三种方式从ES中将数据导出成CSV形式。本文将重点介Kibana/Elasticsearch高效导出的插件、工具集,通过本文你可以了解如下信息: 1,从kibana导出数据到csv文件 2,logstash导…

rockchip 3588 HDMI avmute

概述 HDMI (High-Definition Multimedia Interface) 是一种数字接口标准,用于传输高清视频和多通道音频信号。AVMUTE 是 HDMI 规范中的一个术语,表示"Audio-Video Mute"(音视频静音)。AVMUTE 通常与 HDMI 设备的音频和…

HDMI线EMI超标整改方案

HDMI端口辐射(EMI)超标解决方案_hdmi esd器件对 emi的影响-CSDN博客HDMI端口辐射(EMI)超标解决方案一、HDMI EMC设计要求:1、HDMI EMC设计原理图( 图 一 )2、HDMI元件选型及参数说明:(图一所示&…

分发糖果[困难]

优质博文:IT-BLOG-CN 一、题目 n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果: 【1】每个孩子至少分配到1个糖果。 【2】相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩…

物联网_01_物理设备的网络接入

设备的网络接入及物理层使用到的传输协议 现在物理设备有两种接入方式,一种是直接接入另一种是网关接入 直接接入 给物理设备添加NB-IOT通信模组等设备使之具有直接接入网络的能力 网关接入 物理设备在本地组网后通过统一的网关接入到网络(ZigBee无线组网网关).网关是处在本地…

服务器数据恢复-某银行服务器硬盘数据恢复案例

服务器故障&分析: 某银行的某一业务模块崩溃,无法正常使用。排查服务器故障,发现运行该业务模块的服务器中多块硬盘离线,导致上层应用崩溃。 故障服务器内多块硬盘掉线,硬盘掉线数量超过服务器raid阵列冗余级别所允…

过硫酸铵溶液蚀刻回收铜上石墨烯片的合成

引言 石墨烯是一种原子级薄层2D碳纳米材料,具有以六方晶格结构排列的sp2键碳原子。石墨烯因其优异的物理和电子性能而受到广泛关注。自发现石墨烯以来,石墨烯的基础、合成方法和潜在应用的研究一直在积极进行。 化学气相沉积是大规模生产石墨烯的有前途…

【Docker】Dockerfile常用指令

参考官方文档:https://docs.docker.com/engine/reference/builder/ Dockerfile常用指令 指令说明from基础镜像,当前镜像基于(依赖)哪个镜像maintainer镜像的维护者和邮箱run镜像构建时需要执行的命令workdir镜像的工作目录expos…

NSS [NCTF 2018]滴!晨跑打卡

NSS [NCTF 2018]滴!晨跑打卡 很明显是sql注入 输入一个1,语句直接显示了,非常的真诚和坦率 简单尝试了一下,发现有waf,过滤了空格 拿burp跑一下fuzz,看看有多少过滤 过滤了# * - 空格那我们无法通过#或者–来注释掉…

CentOS 7设置固定IP地址

当我们安装了一个虚拟机或者装了一个系统的时候,经常会遇到需要设置固定ip的情况,本文就以Centos 7为例,讲述如何修改固定IP地址。 1、用ifconfig命令查看使用的网卡 如上图所示,我们就会看到我们目前使用的网卡名称 2、编辑网卡…

【机器学习】支持向量机(实战)

支持向量机(实战) 目录 一、准备工作(设置 jupyter notebook 中的字体大小样式等)二、线性支持向量机(核函数为线性核)三、数据标准化的影响四、软间隔五、非线性支持向量机5.1 手动升维5.2 对比试验&#…

洗车小程序源码:10个必备功能,提升洗车体验

作为洗车行业的专家,我们深知在如今数字化时代,拥有一款功能强大的洗车小程序是提升用户体验和业务发展的关键。本文将向您介绍洗车小程序源码中的10个必备功能,让您的洗车业务达到新的高度。 在线预约系统 通过洗车小程序源码,…

强化学习代码实战(1)

机器人领域:控制,规划,感知等都可以用,可以把它作为一个优化过程,那么任何需要优化的问题都可以用它解决。 1.应用 深度学习:智能感知,解决智能如何理解这个世界的问题。 强化学习&#xff1a…

华为云 CodeArts Snap 智能编程助手 PyCharm 插件安装与使用指南

1 插件安装下载 1.1 搜索插件 打开 PyCharm,选择 File,点击 Settings。 选择 Plugins,点击 Marketplace,并在搜索框中输入 Huawei Cloud CodeArts Snap。 1.2 安装插件 如上图所示,点击 Install 按钮安装 Huawei Cl…