【JAVA笔记——术】Java ClassLoader类加载机制详解

本文深入探讨Java的ClassLoader机制,包括三种类加载器(Bootstrap, Extension, Application),双亲委派模型的工作原理,以及ClassLoader如何加载类。类加载器实现了类的懒加载和独立的类名称空间,确保了JVM中的类唯一性。Java虚拟机通过ClassLoader的双亲委派模型加载类,允许自定义类加载器并行加载。在类的实例化过程中,ClassLoader先加载类,然后进行实例化。Class对象代表着运行中的Java应用的类和接口,包括枚举、注解和数组。" 136707612,17243493,大规模数据处理:从核心概念到最佳实践,"['大数据', '分布式计算', '机器学习', '数据挖掘', 'MapReduce']
摘要由CSDN通过智能技术生成

Java ClassLoader

三种类加载器

WIki : Java_Classloader

JAVA类加载器实现了一部分 JRE加载JAVA CLASSES到 JVM 的功能。

ClssLoader 实现了懒加载,并且使得JVM不必关心加载文件以及所使用的文件系统。

类加载器虽然只用于实现类的加载动作,但它在JAVA程序中所起到的作用远远不限于类加载阶段。对于任意一个类,都需要有由加载它的类加载器和这个类本身一同确立其在JAVA虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这意味着唯一确定一个JAVA的类需要确认
JavaClassloader + Java Class 相同。

JVM启动时,这三种加载器将被启动:

1 Bootstrap class loader

C++语言实现,是虚拟机自身一部分,其他都是JAVA实现继承java.lang.ClassLoader。负责加载

双亲委派模型

双亲委派模型Parents Delegation Model

双亲委派模型是通过Composition模式实现
双亲委派模型

双亲委派模型的基本思路是,一个类加载器收到了类加载请求,自己不会加载,而是调用父类加载器去完成

sun.misc.Launcher中继承关系如下

继承关系

ClassLoader解释如下

java.lang.ClassLoader
A class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class, a class loader should attempt to locate or generate data that constitutes a definition for the class. A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值