首页 > 其他 > 详细

两种类别的类加载器

时间:2020-01-08 15:54:00      阅读:130      评论:0      收藏:0      [点我收藏+]

 作者:weipeng2k
链接:https://www.jianshu.com/p/891c05b0ac05

 

一般来说,加载一个资源的时候,你会有至少有三个ClassLoader可以用来加载资源,系统ClassLoader(AppClassLoader),当前ClassLoader(可以理解为加载了当前Class的ClassLoader,比如你编写并部署在servlet容器中的程序,它使用WebAppClassLoader)和线程上下文ContextClassLoader。如何去选择使用哪个ClassLoader呢?
 
CurrentClassLoader是当前方法所属的Class,加载这个Class的ClassLoader,这样有些别扭,其实就是如果A类中有方法调用,在方法调用中用到了B,那么加载B的ClassLoader一定是加载A的ClassLoader,那么在加载B的时候,用来加载B的ClassLoader就是CurrentClassLoader。


class A {
     public void m() {
          B b = new B();
     }
}

  

可以看出来CurrentClassLoader对用户来说是自动的,隐式的,而ContextClassLoader需要显示的使用,先进行设置然后再进行使用

两种类别的类加载器

原文:https://www.cnblogs.com/silyvin/p/12166103.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!