什么是类加载器

GBT 27930-2015/2023国标充电协议A类CAN报文ID说明 国标充电CAN的ID,仅供学习参考。 阅读详情

类加载器是一个用来加载类文件的类。Java源代码通过javac编译器编译成类文件。然后JVM来执行类文件中的字节码来执行程序。类加载器负责加载文件系统、网络或其他来源的类文件。有三种默认使用的类加载器:Bootstrap类加载器、Extension类加载器和System类加载器(或者叫作Application类加载器)。每种类加载器都有设定好从哪里加载类。

  • Bootstrap类加载器负责加载rt.jar中的JDK类文件,它是所有类加载器的父加载器。Bootstrap类加载器没有任何父类加载器,如果你调用String.class.getClassLoader(),会返回null,任何基于此的代码会抛出NUllPointerException异常。Bootstrap加载器被称为初始类加载器。
  • 而Extension将加载类的请求先委托给它的父加载器,也就是Bootstrap,如果没有成功加载的话,再从jre/lib/ext目录下或者java.ext.dirs系统属性定义的目录下加载类。Extension加载器由sun.misc.Launcher$ExtClassLoader实现。
  • 第三种默认的加载器就是System类加载器(又叫作Application类加载器)了。它负责从classpath环境变量中加载某些应用相关的类,classpath环境变量通常由-classpath或-cp命令行选项来定义,或者是JAR中的Manifest的classpath属性。Application类加载器是Extension类加载器的子加载器。通过sun.misc.Launcher$AppClassLoader实现。

除了Bootstrap类加载器是大部分由C来写的,其他的类加载器都是通过java.lang.ClassLoader来实现的。

总结一下,下面是三种类加载器加载类文件的地方:

1) Bootstrap类加载器 – JRE/lib/rt.jar

2) Extension类加载器 – JRE/lib/ext或者java.ext.dirs指向的目录

3) Application类加载器 – CLASSPATH环境变量, 由-classpath或-cp选项定义,或者是JAR中的Manifest的classpath属性定义.

类加载器的工作原理:

Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类加载器能够帮你解决NoClassDefFoundError和java.lang.ClassNotFoundException,因为它们和类的加载相关。类加载器通常也是比较高级的Java面试中的重要考题,Java类加载器和工作原理以及classpath如何运作的经常被问到。Java面试题中也经常出现“一个类是否能被两个不同类加载器加载”这样的问题。

使用RV1126实现人脸识别——将Facenet模型转换为RKNN模型 在本文中,我们将探讨如何在RV1126芯片上实现人脸识别,并将Facenet模型转换为RKNN(Rockchip Neural Network)模型,以在RV1126上进行高效的人脸识别。Fine-tuning是指在预训练模型的基础上,使用自己的数据集进行进一步训练,以适应特定的任务。同时,我们需要下载Facenet模型的预训练权重,这些权重将作为我们的基础模型。综上所述,我们详细介绍了如何在RV1126上实现人脸识别,并将Facenet模型转换为RKNN模型。方法将模型导出为RKNN格式的文件。 阅读详情

相关推荐

软件工程导论实践:从需求到架构的机票预订系统全流程解析

本文深入解析机票预订系统从需求分析到架构设计的全流程实践,涵盖业务流程、功能建模、模块化设计、性能优化等关键环节。通过实际项目经验,分享软件工程导论在复杂系统开发中的应用技巧,包括数据流图绘制、E-R图设计、微服务架构及高并发处理等实战策略,助力开发者构建高效可靠的机票预订系统。

weixin_29202213的博客 413

深入理解Java虚拟机——再谈类的加载器——第十二章——中篇

文章目录1:概述1.1 类加载器分类1.2 类加载器的必要性1.3 命名空间1.4 类加载器的基本特性2:类的加载器分类2.1 引导类加载器2.2 扩展类加载器2.3 系统类加载器2.4 用户自定义类加载器3:测试不同的类加载器4:ClassLoader源码解析4.1 ClassLoader的主要方法4.2 SourceClassLoader与URLClassLoader4.3 ExtClassLoader和AppClassLoader4.4 Class.forName()与ClassLoader.load

qq_44891295的博客 1678

TortoiseGit之配置密钥

基于github的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具,来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥。

欧文的博客 2078

【Java 基础篇】Java类加载器详解

Java允许开发人员自定义类加载器,以满足特定的加载需求。自定义类加载器必须继承类,并重写findClass方法。在findClass方法中,开发人员可以根据自己的规则和逻辑来加载类的字节码。// 根据名称加载类的字节码 byte [ ] byteCode = loadClassByteCode(name);// 调用defineClass方法将字节码转换为Class对象 return defineClass(name , byteCode , 0 , byteCode . length);

繁依Fanyi的博客 1万+

Python Pygame 游戏开发中的状态机设计

在游戏开发中,一个游戏往往包含多个不同的场景和状态,例如主菜单、游戏关卡、暂停界面、游戏结束界面等。状态机设计的目的就是为了有效地管理这些不同的状态,使得游戏的逻辑更加清晰、易于维护和扩展。本文的范围主要聚焦于如何在 Python Pygame 这个游戏开发库中实现和应用状态机设计,涵盖了从基本概念到实际项目应用的各个方面。本文将按照以下结构进行组织:首先介绍状态机的核心概念和联系,包括其原理和架构;接着详细讲解核心算法原理和具体操作步骤,并通过 Python 代码进行说明;

AI Python 编程之道的博客 1236

Logisim实战:手把手教你搭建GB2312汉字字库(附完整电路图)

本文提供了一份详尽的Logisim实战指南,手把手教你如何利用存储芯片,通过位扩展和字扩展技术,构建一个完整的GB2312汉字字库。文章深入浅出地讲解了从编码原理、系统架构设计到具体电路实现与调试的全过程,是学习计算机组成原理和数字电路设计的绝佳实践项目。

k6l7m8n9的博客 808

类加载器 超详解:什么是类加载器,类加载器作用及应用场景,类加载时机,类加载的完整过程,类加载器分类

类加载器 超详解:什么是类加载器,类加载器作用及应用场景,类加载时机,类加载的完整过程,类加载器分类

qq_44700578的博客 7083

HFSS实战项目——Ku波段微带发夹线滤波器

保姆级教程!!!看完必会,非常详细!!!Ku频段5阶切比雪夫微带线带通滤波器的仿真实例。首先介绍了滤波器的技术指标和基本理论知识,重点介绍了滤波器的耦合系数和外部品质因数。建立了谐振器的设计模型、耦合系数与谐振器间距的设计模型、外部品质因数与抽头位置的设计模型和滤波器整体电路的模型。详细介绍了谐振器设计模型的建立步骤。

2401_87464239的博客 3041

什么是类加载器,类加载器有哪些

类加载器(Class Loader)是Java虚拟机(JVM)的一部分,负责将Java类的二进制代码加载到内存中,并转换为可执行的Java字节码。它是Java语言的重要特性之一,为Java应用程序提供了动态加载和运行时扩展的能力。类加载器的主要职责是根据类的全限定名(Fully Qualified Name)在运行时定位并读取类的字节码。类加载器使用一种称为双亲委派模型(Parent Delegation Model)的机制来加载类。

Flying_Fish_roe的博客 2293

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

ctle电路求帮忙分析低中高频调节原理,搭好了电路该怎样调节参数?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 1127

类加载器(ClassLoader)

一篇文章认识类加载器

jc15274630894的博客 1402

【AI智能体】基于OpenCode 搭建Skills环境与项目实战开发详解

基于OpenCode 搭建Skills环境与项目实战开发详解

congge 8899

Java_类加载器

对Java类加载器的讲解分析,包含程序段

AI+全栈,AI+应用,实操落地,前沿技术 2258

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JVM类加载器

文章目录一、类加载器二、类与类加载器三、双亲委派模型四、破坏双亲委派模型4.1、Tomcat4.1.1、WebApp类加载器4.1.2、Shared类加载器4.1.3、Catalina类加载器4.1.4、Common类加载器4.1.5、Jsp类加载器4.2、JDBC 一、类加载器 从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另一种就是所有其他的类加载器,这些类加载器都由Java语

rockvine的博客 3485

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

了解类加载器吗?类加载器的类型有哪些?

类加载器(ClassLoader)是JVM的核心组件,负责将.class文件加载到内存并生成Class对象。JVM内置三类加载器:Bootstrap(核心类库)、Extension(扩展类)、Application(应用类),支持自定义类加载器。类加载采用双亲委派机制,优先委派父加载器处理,确保核心类安全并避免重复加载。自定义类加载器通过继承ClassLoader实现,常用于热部署、插件系统等场景。线程上下文类加载器(如SPI)可突破双亲委派限制。理解类加载机制对Java模块化开发和安全部署至关重要。

笑衬人心的博客 1538

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

类加载器

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远超类加载阶段。对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来

m0_62943934的博客 1218

类加载器的作用

深入探讨 Java 类加载器 成 富, 软件工程师, IBM 中国软件开发中心 成富任职于 IBM 中国软件开发中心,目前在 Lotus 部门从事 IBM Mashup Center 的开发工作。他毕业于北京大学信息科学技术学院,获得计算机软件与理论专业硕士学位。他的个人网站是 http://www.cheng-fu.com。 简介: 类加载器(class loader)

zhouren1314的专栏 1944

Java类加载器及Android类加载器基础

引子Android插件化与热更新技术日渐成熟,当你研究这些技术时会发现类加载器在其中占据重要地位。Java语言天生就有灵活性、动态性,支持运行期间动态组装程序,而这一切的基础就是类加载器。Java中的类加载器Java灵活性和动态性的原因Java源代码被编译器编译成字节码,即从.java文件编译为.class文件,而.class文件就是通过类加载器加载到虚拟机内存中的。虚拟机的类加载(Class Lo

Battling against our own ignorance 3035

类加载器详解

类加载器从 JDK 1.0 就出现了,最初只是为了满足 Java Applet(已经被淘汰) 的需要。后来,慢慢成为 Java 程序中的一个重要组成部分,赋予了 Java 类可以被动态加载到 JVM 中并执行的能力。根据官方 API 文档的介绍:类加载器是一个负责加载类的对象。是一个抽象类。给定类的二进制名称,类加载器应尝试定位或生成构成类定义的数据。典型的策略是将名称转换为文件名,然后从文件系统中读取该名称的“类文件”。每个 Java 类都有一个引用指向加载它的。不过,数组类不是通过。

m0_74267125的博客 819

java 类加载器

类加载器基本概念 什么是类加载器 顾名思义,类加载器(class loader)用来加载 Java 类到Java 虚拟机中。 具体的说就是:Java源程序(.java 文件)在经过Java 编译器编译之后就被转换成 Java 字节代码(.class文件)。类加载器负责读取 Java字节代码,并转换成 java.lang.Class类的一个实例。 系统提供的类加载器 系统提供的类加

卖克的专栏 4万+

什么是类加载器,类加载器如何分类

③ 在内存中生成一个代表这个类的java.lang.Class对象,任何类被使用时,系统都会为创建一个java.lang.Class对象,即加载完毕创建一个class对象。链接阶段的第一步,这一阶段为了确保Class文件字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机的自身安全,即文件中的信息是否符合虚拟机规范,有没有安全隐患。将类的二进制数据流中的符号引用替换为直接引用,即本类中如果用到了其他的类,此时就需要找到对应的类。类加载器:负责将.class文件(存储的物理文件)加载到内存中。

weixin_46665411的博客 2509

Java的类加载器有哪些

职责:满足特定需求的类加载器,通常在应用程序中自定义实现。实现:继承java.lang.ClassLoader并重写findClass方法。加载路径:由开发者自行定义,可以是文件系统、网络、数据库等。父类加载器:可以指定,也可以继承应用程序类加载器。@Overridetry {// 将类名转换为文件路径// 读取类文件的字节码// 将字节码转换为 Class 对象当内置的三大类加载器无法满足需求时,就需要自定义类加载器。目的加载非 ClassPath 路径的类。

埃泽漫笔 1093

JVM类加载器详解

类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远超类加载阶段。对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性,一个类加载器,都拥有一个独立的类名称空间。

weixin_46425661的博客 1004

类加载器。

目录 一、类加载器 类加载器的作用: 1.启动类加载器 2.扩展类加载器 3.应用程序类加载器 二、操作实例 一、类加载器 类加载器的作用: 简单得说类加载器就是用于实现类的加载动作。 绝大多数Java程序都会使用到以下3个系统提供的类加载器来进行加载。 1.启动类加载器 这个类加载器负责加载存放在 \lib目录,或者被-Xbootclasspath参数所指定的路径中存放的,而且是Java虚拟机能够 识别的类库加载到虚拟机的内存中。启动类加载器无法被Java程...

欢迎一起学习交流 1337
上一篇: 反射
下一篇: 什么是XML
XHui_Lin
博客等级 码龄10年 27粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值