请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ClassLoader

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

正在回答 回答被采纳积分+3

插入代码

2回答

翔仔 2019-03-14 00:32:43

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

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

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

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


0 回复 有任何疑惑可以回复我~
提问者 慕无忌8385962 2019-03-12 17:37:29

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号