Classloader如何确定它可以加载哪些类?

ipa*_*lic 4 java classloader

我正在阅读Java中的类加载.

动机

假设我们有一个看起来像这样的类加载器层次结构,我理解加载的类First不能由加载的类直接访问Second(反之亦然).

 Bootstrap
     |
   System
     |
   Common
   /    \
First Second
Run Code Online (Sandbox Code Playgroud)

我也理解一个类加载器检查它的父类加载器是否可以加载该类,如果是这种情况,则将加载委托给它的父类.

类加载器如何确定它们是否可以加载某个给定的类?

Bla*_*sui 5

这取决于类加载器的实现.但ClassLoader.findClass(String)检索ClassLoader可以加载的所有类

有许多实现,但最常见的是URLClassLoader,它从目录和jar文件加载类.