美文网首页
如何理解不同类加载器加载的类不可以互相调用

如何理解不同类加载器加载的类不可以互相调用

作者: 浅乔未果 | 来源:发表于2020-09-30 20:46 被阅读0次

    不同类加载器加载的类不可以互相调用

    专业术语:定义类加载器、初始类加载器

    在java中加载器分为4种:

    1、appClassLoad 应用程序加载器

    2、etcClassLoad 扩展类加载器

    3、bootStrapClassLoad(root) 根加载器

    4、自定义加载器

    怎么理解不同类加载器加载的类不可以互相调用?

    当创建一个类Test时由appClassLoad类加载器加载,当引入变量String时,String根据双亲委派机制,一层一层往上查询,应该appClassLoad-》etcClassLoad-》bootStrapClassLoad最终由bootstrap加载,在这个过程种appClassLoad和etcClassLoad被定义位初始加载器,bootstrap被定义为定义类加载器,每个加载器当中都有一个命名空间,也就是记录表,记录着所有此类的初始类加载器,所以在Test类是以可使用到String的。

    一个类通过不同的加载器,加载到方法区中,会生成两个不同的类,互相是不可以遇见的,而且在堆中也会生成不同的对象实例。

    自定义类加载器是为了解决当.class文件不在classpath路径中时,寻找加载.class而存在的

    相关文章

      网友评论

          本文标题:如何理解不同类加载器加载的类不可以互相调用

          本文链接:https://www.haomeiwen.com/subject/vuspuktx.html