类加载器
在双亲委托机制(父亲委托机制)中,各个加载器按照父子关系形成了**树形结构**,
除了根类加载器之外,其余的加载器**有且只有一个**父类加载器
某一个类加载器想要去加载一个类,它并不是立刻去加载
而是把加载的动作委托给父亲,如果父亲上面有父亲,
在委托给父亲的父亲,一直向上委托,不断追溯 (最终到了根类加载器,启动类加载器 )
如果根类加载器加载不成功 在向下委托,如果过程中有一个类加载器能够加载就加载成功
没有一个类加载器能够成功就宣布失败
就比如说 上个案例 最终系统类加载器加载成功了 Sample 类,
那系统类加载器就是 定义类加载器
而 loader1 能成功返回Class对象引用 所以它就是初始类加载器
代码 体现 类加载器
- 案例 一
可以看出 java.lang.String 是根类加载器 进行加载
而自定义的 C类 是由 系统类加载器 进行加载的
- 类加载器与类初始化深度刨析
为什么 MyChild 一直没有输出呢? 因为 一直都是主动使用 MyParent 并没有主动使用子类
- 案例二