当前位置 : 主页 > 编程语言 > java >

双亲委派机制

来源:互联网 收集:自由互联 发布时间:2022-07-04
JVM中存在三个默认的类加载器: bootstrap ClassLoader、ExtClassLoader、AppClassLoader。 BootStrapClassLoader是ExtClassLoader的⽗类加载器,默认负责加载%JAVA_HOME%lib下的 jar包和class⽂件。 ExtClassLoader是

JVM中存在三个默认的类加载器: bootstrap ClassLoader、ExtClassLoader、AppClassLoader。

  • BootStrapClassLoader是ExtClassLoader的⽗类加载器,默认负责加载%JAVA_HOME%lib下的 jar包和class⽂件。
  • ExtClassLoader是AppClassLoader的⽗类加载器,负责加载%JAVA_HOME%/lib/ext⽂件夹下的 jar包和class类。
  • AppClassLoader是⾃定义类加载器的⽗类,负责加载classpath下的类⽂件。

AppClassLoader的⽗加载器是ExtClassLoader,ExtClassLoader的⽗加载器是 BootstrapClassLoader。

image.png

双亲委派原理:

  • 如果一个类加载器收到类加载请求,它并不会自己先去加载,而是把这个请求委托给父类加载器去执行。
  • 如果父类还存在父类,则进一步委托,依次递归,直到到达启动类加载器。
  • 如果父类加载器能完成,则成功返回,不能完成则子类才会尝试自己去加载。

双亲委派优点:

  • 避免类的重复加载
  • 避免了java的核心API被篡改

双亲委派机制其他文章推荐

上一篇:我被 udp 的 sendto 函数坑惨了
下一篇:没有了
网友评论