双亲委派模型

  • 双亲委派模型的概念

        如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的加载器都是如此,因此所有的类请求都会传给顶层的启动类加载器(Bootstrap ClassLoader),只有当父加载器反馈自己无法完成该加载请求时,子加载器才会尝试自己去加载。

 

  • 双亲委派模型机制图

 

  • 加载类

       启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将<Java_Runtime_Home>/lib下面的类库加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。

       扩展(Extension)类加载器:它负责将<Java_Runtime_Home>/lib/ext或者由系统变量java.ext.dir指定位置中的类库加载到内存中。开发者可以直接使用扩展类加载器。 

       应用程序类加载器:负责加载用户类路径上所指定的类库。如果应用程序没有自定义过类加载器,一般它就是默认的类加载器。

  • 如果加载同一个类,应该使用哪一个类?

       父类

posted on 2017-03-18 19:14  一个不会coding的girl  阅读(332)  评论(0编辑  收藏  举报

导航