ClassLoader

来源:6-5 谈谈ClassLoader

慕无忌8385962

2019-03-12

老师你好,比如项目中自己写的代码用的哪个加载器加载的是AppClassLoader吗?
自定义加载类和反射加载类有什么区别?

写回答

2回答

翔仔

2019-03-14

同学好,请勿自己回复自己的问题哈,不然我这边很难发现。。

自己写的默认是通过AppClassLoader加载的,区别:反射Class.forName是从指定的classloader中装载类,如果没有指定,也就是一个参数的时候,是从装载当前对象实例所在的classloader中装载类.  而ClassLoader的实例调用loadclass方法,是指从当前ClassLoader实例中调用类,而这个实例与装载当前所在类实例的Classloader也许不是同一个.

另外,把另外两个加载器下的class文件放到bootloader下,这个应该是不会加载的,

安全检查时会检查这些。否则都可以自己替换JVM里提供的类库了:)


0
0

慕无忌8385962

提问者

2019-03-12

还有一个问题  jvm 不是有4个类加载器吗  如果把AppClassLoader 或 ExtClassLoader的内容放到BootstrapClassLoader 是不是也可以

0
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8442 学习 · 1872 问题

查看课程