Android进阶解密读书笔记(十一)——理解 ClassLoader

本文详细介绍了Java中的ClassLoader,包括其类型、继承关系、双亲委托模式以及自定义ClassLoader的步骤。在Android中,ClassLoader同样关键,涉及BootClassLoader、PathClassLoader和DexClassLoader,特别是DexClassLoader的构造参数解析和加载流程。文章还提到了Android特有的InMemoryDexClassLoader和BaseDexClassLoader。
摘要由CSDN通过智能技术生成

Java中的ClassLoader(类加载子系统)

它的主要作用是通过多种类加载器(ClassLoader)来查找和加载 class 文件到 Java 虚拟机中

1、ClassLoader的类型

Java 中的类加载器主要有两种类型,即系统类加载器和自定义类加载器;其中系统类加载器包括3种:Bootstrp ClassLoader、Extensions ClassLoader和Application ClassLoader,在之前的Java虚拟机学习中我们详细了解过

2、ClassLoader的继承关系

系统所提供的类加载器有3中类型,但系统提供的 ClassLoader 却不只有3个,共有5个ClassLoader相关类:

  • Class Loader:是一个抽象类,其中定义了 ClassLoader 的主要功能
  • SecureClassLoader: 继承了抽象类 ClassLoader,但它并不是 ClassLoader的实现类,而是拓展了 ClassLoader 类加入了权限方面的功能,加强了ClassLoader的安全性
  • URLClassLoader:继承自 SecureClassLoader 可以通过 URL 路径从 jar 文件和文件夹中加载类和资源
  • ExtClassLoader 和 AppClassLoader:都继承自 URLClassLoader,它们都是 Launcher的内部类,Launcher 是 Java 虚拟机的入口应用,ExtClassLoader和AppClassLoader都是在 launcher 中进行初始化的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值