JVM的2种类加载器

JVM的三种类加载器 干java程序员有一段时间了,但是对JVM是怎么加载类的一直是懵懵懂懂,看了一些博客,现把自己对JVM的类加载器的一些理解和大家分享一下。 咱们的类经过javac编译后,生成.class文件保存下来,然后经过类加载器加载类至内存,生成java.lang.Class类的实例,这个实例就是程序访问这个类的入口,通过这个class实例的newInstance方法即可得到这个类的实例... 阅读详情

JVM的2种类加载器

前言:要想在大JAVA邻域有所建树,JVM是必须要懂的。然而要领悟JVM,它的类加载器更应理解了。所以一来为了自己以后看,二来也希望可以帮到有相同需要的同仁。我就写了这个博客,不周之处还望指正,共同切磋交流。
首先来理清一下概念,所谓的类加载器(class loader):就是用来加载java类到java虚拟机中。其实这就是java与C或C++的区别,java程序并不是一个可执行的文件,它由许多的类文件组成。每一个类文件对应一个Java类。那么是不是运行时把他们全都加入到内存中呢?答案是:NO。它们是根据需要来逐渐加载。
以是否是自带来划分,类加载器分为2种:
(1)JVM自带类加载器:
<1>根类加载器Bootstrap(它是用C++写的):引导类装入器是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的核心类库或-Xbootclasspath选项指定的jar包加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。
<2>扩展类加载器Extension(它是java写的):扩展类加载器是由Sun的ExtClassLoader(sun.misc.Launcher$ExtClassLoader)实现的。它负责将< Java_Runtime_Home >/lib/ext或者由系统变量-Djava.ext.dir指定位置中的类库加载到内存中。开发者可以直接使用标准扩展类加载器。
<3>系统类加载器System(它是java写的):是由 Sun的 AppClassLoader(sun.misc.Launcher$AppClassLoader)实现的。它负责将系统类路径java -classpath或-Djava.class.path变量所指的目录下的类库加载到内存中。开发者可以直接使用系统类加载器。
(2)自定义类加加载器:
不好列举,但都是java.lang.ClassLoader的子类,好处在于可以定制类的加载方式。

为了大家好理解,我找了个图:
图 1. 类加载器树状组织结构示意图
类加载器树状组织结构示意图






JVM系列之类加载器 前言 上节我们介绍了类加载的时机和过程,对类加载有了个初步的认识,上节我们有不断提到一个东西:类加载器,那么什么是类加载器?又有哪些类加载器?类加载器之间的联系等等一些问题,今天我们将会围绕这些点展开,那么,开始我们今天的JVM之旅吧。 什么是类加载器? 把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现该动作的代码模块就被称为“类加载器”。 类与类加载器的联系 类加载器用于实现类的.. 阅读详情

相关推荐

JVM基础之类加载器详解

开始 本文我整理了一些JVM类加载器相关的面试高频知识点,方便同学们复习。 在详细了解JVM知识点之前,我们先引入以下基础的经典面试题: 谈谈你对Java的理解 平台无关性,一次编译到处运行。 GC垃圾回收机制:Java无需像C++一样手动管理内存。 Java的语言特性:泛型、反射、lambda表达式等。 面向对象:包括封装、继承、多态。 Java自身类库如:集合、并发库、网络库以及IO流。 异常处理。 Java 和 C++的区别 Java不提供指针直接访问内存,程序的内存更加安全。

a6636656的博客 1156

深入理解JVM中的ClassLoader类加载器

文章目录深入理解JVM中的ClassLoader类加载器JVM的体系结构图JVM的位置JVM结构图中的class files文件JVM结构图中的类加载器ClassLoader的解释类加载器ClassLoader的作用类加载器的种类java类的加载机制双亲委派机制沙箱安全机制 深入理解JVM中的ClassLoader类加载器 JVM的体系结构图 先来看一下JVM的体系结构,如下图: JVM的位置 JVM的位置,如下图: JVM是运行在操作系统之上的,与硬件没有直接的交互,但是可以调用底层的硬件,用JIN(

xzy的博客 3150

Blender骨骼绑定实战:如何用IK控制器让角色动作更自然(附常见问题解决)

本文深入探讨了Blender中IK控制器的实战应用,旨在解决角色动作僵硬问题。通过对比IK与FK的核心差异,详细解析了IK链的构建、参数设置及极向目标的使用,并提供了控制器定制、IK/FK无缝切换等高级技巧,帮助动画师实现更自然、符合直觉的角色动画。

weixin_29243279的博客 442

面试八股之JVM篇2——类加载器

类加载器的种类、作用、双亲委派模型及采用原因、类装载全过程七大步

做一个善良的人,做好自己的事,如果愿意,再发一份光。 998

Arcmap计算土方量教程

1. 创建现状TIN 结果数据: 2. 创建设计TIN 结果数据: 注意:现状TIN和设计TIN构建时候的坐标系不同,设置坐标系见最后的注意事项第1点,就是import(导入)那步骤,现状TIN构建时选择高程点数据或者等高线数据,设计TIN构建时候选择洱海面数据 3. TIN转栅格 改成你要存的数据库,注意中间不要有汉字 结果数据(设计TIN转栅格的同理) 4. 裁剪现状TIN转成的栅格 结果数据: 5. 计算土方量 结果数据: ...

欢迎关注,共同进步! 5015

机器学习预测股票收益(一)之随机森林模型

机器学习预测股票收益(一)前言一、导入库和数据二、处理数据以及计算特征变量三、使用随机森林回归预测股票收益1.构建训练集和测试集2.查看预测结果四、根据预测结果构建long-short投资组合1.定义投资组合函数2.定义绩效分析函数五、引入Fama-French Factor六、投资组合表现1.超额收益表现2.多因子回归总结 前言 本文将使用Python整理1927-2020年所有美国上市公司股票数据。根据历史收益以及交易量,使用随机森林,支持向量机以及神经网络等机器学习方法预测股票收益。最优结果构建的资产

weixin_47174968的博客 1万+

认真学习JVM几种类加载器

【1】类加载器的分类JVM支持两种类型的类加载器 。分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)(JVM规范这样定义的)。从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,...

weixin_36279637的博客 188

RK3588S开发板实战:手把手教你搞定IMX415摄像头驱动配置(附调试日志分析)

本文提供了一份详细的RK3588S开发板配置IMX415摄像头驱动的实战指南。内容涵盖从环境准备、内核驱动编译、设备树节点编写到调试日志分析的完整流程,并重点解析了摄像头调试过程中的常见问题与解决方案,帮助开发者快速完成驱动配置与功能验证。

weixin_28285943的博客 209

JVM中的三种类加载器

JVM中的三种类加载器 启动类加载器,拓展类加载器,应用类加载器 咱们的类经过javac编译后,生成.class文件保存下来,然后经过类加载器加载类至内存,生成java.lang.Class类的实例,这个实例就是程序访问这个类的入口,通过这个class实例的newInstance方法即可得到这个类的实例对象。 启动类加载器(Bootstrap classLoader):又称为引导类加载器,由C++...

wu756271909的博客 469

37.华为路由器:loopback(本地回环)接口的作用

本地环回接口(或地址),亦称回送地址(loopback address)。 此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。常见于如下用途: 1 作为一台路由器的管理地址 系统管理员完成网络规划之后,为了方便管理,会为每一台路由器创建一个loopback 接口,并在该接口上单独指定一个IP 地址作为管理地址 ,管理员会使用该地址对路由器远程登录(telnet ),该地址实际上起到了类似设备名称一类的功能。 但是通常每台路由器上存在众多接口和地址,为何不从当中随便挑选一个呢 ? 原因如下:由于

迷逝 3万+

科研绘图系列:R语言绘制宏基因组分析的可视化图形(network & barplot & heatmap)

科研绘图系列:R语言多图形组合(network & barplot & heatmap)

专注生信领域 646

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的博客 3486

C++面向对象编程-继承与派生练习题

2、共同派生类 3、人员类Person的派生(虚基类的使用)

编程小鹏的博客 1193

JVM类加载器详解

前言 在上一篇中,通过下面这幅图大致了JVM整体的内部运行结构图,在JVM的结构中,类加载子系统作为连接外部class文件与真正将class文件加载到运行时数据区,承担着重要的作用 类加载器是什么?有什么作用? 1、负责从文件或者网络加载class文件字节流 2、读取字节码中的信息,并在运行时存储到JVM的内存区域 3、检查并确保加载的class文件信息符合JVM字节码规范 ...

congge 6356

C#实现每日定时执行制定程序(附完整源码)

C#实现每日定时执行制定程序(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 867

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

谈谈jVM的三种类加载器

负责加载JDK扩展功能的类(比如处理加密解密的类,处理XML解析的类),加载路径是。(如java.lang.String、java.util.ArrayList),加载路径是。2. 扩展类加载器(Extension ClassLoader)(比如new对象、调用静态方法),相当于给Java类“办入职手续”。最顶层加载器,由C/C++实现,不是Java类。类加载器(ClassLoader)是JVM的核心组件,作用是。一、先懂类加载器:给Java类“办入职”的工具。,也叫“系统类加载器”。

2301_80271227的博客 308

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

聊一聊JVM的类加载器机制

聊一聊JVM的类加载器机制 目录 聊一聊JVM的类加载器机制 01 怎么获取类加载器?哪几种类加载器 02 各个加载器加载的路径? 01 怎么获取类加载器?哪几种类加载器 BootStrapClassLoader 引导类加载器 ExtClassLoader 扩展类加载器 AppClassLoader应用级别的类加载器 UserD...

DeanKano的博客 51万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JVM类加载器面试题及原理

介绍类加载器的种类、双亲委派模型、类装载的执行过程原理及相关面试题

2303_81059616的博客 1468

几种类加载器

JVM支持两种类加载器,分别是引导类加载器(BootStrap ClassLoader)和自定义加载器(User-Defined ClassLoader) 所有派生于抽象类ClassLoader的类加载器都是自定义加载器(Extension ClassLoader和System ClassLoader也属于自定义加载器) 程序中常见的三种类加载器: 主要分为引导类加载器(BootStrap ClassLoader)、扩展类加载器(Extension ClassLoader)、系统类加载器(System

weixin_45849726的博客 1578

java 类加载器有几种_jvm类加载_类加载器种类

类加载器种类在jvm类加载过程中,有一步叫做加载的流程加载 : 根据类的全限定名获取到其定义的二进制字节流,并将其加载到内存中. 此时需要借助类加载器来帮助完成全限定名 : 包名 + 类名类加载器分为4类 :%JAVA_HOME% : 为JDK设置的环境变量路径. 如环境变量里设置了%java_home%=C:\jdk1.8.01. Bootstrap Classloader : 启动类加...

weixin_35933239的博客 2587

【JVM】深入理解 JVM 类加载器

除启动类加载器外,所有类加载器都有一个父加载器;当需要加载一个类时,当前类加载器会先将请求委派给父加载器,只有父加载器无法加载时,才尝试自己加载。这里的 “双亲” 并非指两个父加载器,而是层级委派关系(更准确地说应称为 “单亲委派”)。类加载器之间的父子关系通过组合而非继承实现(类通过parent字段持有父加载器引用)。JVM 允许开发者通过继承类实现自定义类加载器,以满足特殊需求(如加密字节码、从网络加载类等)。// 类加载路径@Overridetry {// 1. 读取字节码文件。

m0_61057201的博客 924

JVM——类加载器

讲解了JVM三种类加载器,即启动类加载器、扩展类加载器和应用程序类加载器,同时讲解了类加载器的源码,以及用户根据自己需求自定义类加载器,此外还介绍了它们之间的包含关系以及类加载器所采用的双亲委派机制。

码说芯语的博客 1562

JVM之JVM是什么,JVM基本结构, 类加载的过程, 类加载器种类, 类加载器机制

1. JVM是什么? 虚拟机,一种能够运行java字节码的虚拟机。 2. JVM的基本结构 类加载器 加载.class文件到内存. 内存结构 运行时的数据区 执行引擎 执行内存中的.class文件,输出执行结果(包括GC:垃圾收集器), GC在后面一节会提到 本地方法的接口 本地方法库在这里插入图片描述 3. 类加载的过程 加载 将.class文件从磁盘读到内存. 连接 验证 ...

啊策策大数据社区 295

JVM扩展类加载器原理与作用

在深入探讨Java虚拟机(JVM)的运行机制时,我们不可避免地会接触到类加载器这一核心组件。类加载器负责将Java类文件加载到JVM中,并生成对应的Java类对象。在JVM的类加载机制中,扩展类加载器扮演着至关重要的角色。以下将围绕扩展类加载器进行详细阐述。在现实应用中,我们常常会遇到这样的场景:在开发过程中,为了满足特定需求,需要引入一些外部库或框架。这些库或框架往往需要特定的类加载器来加载其类文件。然而,默认的类加载器可能无法满足这些需求,这就需要扩展类加载器来介入。

AIHacksCash的博客 1055
上一篇: http://www.cnblogs.com/newflydd/p/4891922.html
下一篇: http://blog.youkuaiyun.com/lpjishu/article/details/51842185?ref=myread#comments
ExceptionMapping
博客等级 码龄10年 30粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值