双亲委派模型

除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器.顺序依次是:

  • Bootstrap ClassLoader: 启动类加载器,加载java_home/lib中的类
  • Extension ClassLoader: 扩展类加载器,加载java_home/lib/ext目录下的类库
  • Application ClassLoader: 应用程序类加载器,加载用户类路径上指定类库.

双亲委派模型的工作原理是:如果一个类加载器受到了类加载请求,它首先不会自己去尝试加载这个类,而把这个请求委派给父类加载器去完成,每一层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成加载请求时,加载器才尝试自己加载.这种方式保证了Oject类(JDK 核心类)在各个加载器加载环境中都是同一个类.

标签: 加载、委派、classloader、双亲、顶层、面试
  • 回复
隐藏