JVM虚拟机 之 破坏型双亲委派模型

第一次破坏

因为双亲委派模型是在JDK1.2之后才引入的,但是在JDK1.0之前就已经有用户自定义的类加载器存在了,所以Java的设计者在引入双亲委派模型时不得不做出一些妥协

第二次破坏

是由于该模型本身的缺陷所导致的,双亲委派模型很好的解决的各个类加载器的基础类为同一个的问题,但是如果是这个基础类又想要都调用用户所写的代码时,就会有问题产生了。比如JNDI服务的问题,JNDI服务是java的一个基础服务,这个服务就是为了对资源进行统一的管理和查找,它的代码由启动类进行加载,需要调用独立厂商实现并部署在应用程序的ClassPath下的JNDI接口,但是启动类使不认识这些代码的,这时,引入了线程上下文类加载器(Thread Context ClassLoader() ),如果创建线程时还未设置,他将会从父线程中继承一个,如果在应用程序的全局范围内都没有设置过的话,那这个类加载器默认就是应用程序类加载器。

第三次破坏

是由于用户过于追求程序的“动态性”导致的,这个“动态性”是指一些热门的名词,例如:代码的热交换、模块的热部署等等,就是说不用重启电脑,直接部署就可以用。

 

本篇博客是看了其他人的博客简单总结的,具体的可以这篇博客:https://blog.csdn.net/luoyang_java/article/details/92598142

我之前也有关于双亲委派模型介绍的博客:https://blog.csdn.net/Right__/article/details/104829728

你可能感兴趣的:(总结)