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里提供的类库了:)
00 -
慕无忌8385962
提问者
2019-03-12
还有一个问题 jvm 不是有4个类加载器吗 如果把AppClassLoader 或 ExtClassLoader的内容放到BootstrapClassLoader 是不是也可以
00
相似问题