想要看ClassLoader的详细讲解, 请转至http://blog.youkuaiyun.com/xyang81/article/details/7292380 这篇讲的很详细,也很好。
下面简单讲讲ClassLoader的双亲委托模式:
这个机制是java classloader范畴的内容。java 虚拟机要将被用到的java类文件通过classLoader 加载到JVM内存中。首先classloader 分三个级别,最上级 : bootstrap classLoader 中间级:extension classLoader 最低级 app classLoader.当需要加载某个类的时候,会看看这个类是否已经被加载了,如果没有,会请求app 级来加载,app 请求 extension 级 extension 请求 bootstrap级, 由最高级来负责加载(这个就是双亲委派,委托 上两级的loader来做加载),如果高级的无法加载 则会将人物返回给 下一级 以此类推 最后如果双亲都不行 就由自己来加载。 为什么要用这个机制? 比如 java.lang.String 这个类,这个是jdk提供的类, 如果我们自定义个 包名:java.lang 然后在里面创建一个String 类, 当我在用String类的时候,根据前面所说,是由bootstrap级的loader 来进行加载的,这个时候它发现其实已经加载过了jdk的String了,那么就不会去加载自定义的String了,防止了重复加载 也加大了安全性。
后续的再补充,这里只做一个简单的笔记。