ClassLoader

类加载机制[1]

Java 默认提供的三个 ClassLoader

BootStrap ClassLoader

称为启动类加载器,是 Java 类加载层次中最顶层的类加载器,负责加载JDK中的核心类库,如:rt.jar, resources.jar, charsets.jar 等

Extension ClassLoader

称为扩展类加载器,负责加载Java的扩展类库,默认加载 JAVA_HOME/jre/lib/ext 目录下的所有 jar

App ClassLoader

称为系统类加载器,负责加载应用程序 classpath 目录下的所有 jar 和 class 文件

如果你需要从其他路径,比如网络上加载类的时候就需要实现自己的类加载器。类加载器的作用就是告诉虚拟机去哪里加载所需要的类。用了委派的设计模式。即便用自定义类去加载所类。它是向自己的上一级询问这个类有没有加载,逐级向上。如果都没有加载。再由上到下尝试去加载。如下图:

classLoader

内存泄漏[2]

每个对象,都有一个对它的类的引用,object.getClass()
每个类对象,都有一个对它的 classLoader 的引用,object.getClass().getClassLoader()

同样的每个 classLoader 对它加载的类对象都有一个引用。如果某个对象发生了内存泄漏,则它的类对象也不能被回收,加载类对象的 classLoader 也就不能被回收,根据垃圾回收的规则,该 classLoader 加载的类对象都不能被回收。


  1. http://blog.csdn.net/xyang81/article/details/7292380

  2. http://zeroturnaround.com/rebellabs/rjc201/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,759评论 18 399
  • 创意,一直是我们大家最容易接受的新鲜实物,随着市面普通的冰皮月饼启发,继韩式卡通月饼之后,我们再次推出极具视觉挑逗...
    乖乖愛闲逛阅读 1,259评论 0 0
  • 门铃响了一遍又一遍,大清早的会是谁呢?打开门木子大叫“元虎!”原来亨源联系到元虎让大家不要担心说自己很快就会回去的...
    蔡亨源阅读 131评论 1 2
  • 初学Java遇到一个诧异的问题,Java函数的对象参数到底是拷贝传递还是引用传递,为了验证这个问题,写了以下的一个...
    Vilarsail阅读 1,252评论 2 5
  • 王宁分享 跑步后发现并不能再继续瘦下来了 久病成医 180减肥到130斤 你是如何做到的? 成就感非常强 体重减少...
    范范范范同学阅读 1,074评论 1 0