JAVA8与9之间的类加载机制的更新
在JAVA与JAVA9都保留了,三层加载,这一点是没有更改的,还是为了保证类只加载一次的原则,大致的更改就是 把 ExtClassLoader 移除,替换成了PlatformClassLoader 加载器,并且 加载方式也更改了,引入了模块化的加载方式,接下来,我们来看看图中的对比加载的不同: 左边的是 JAVA8的加载方式: 当类进行加载时,会优先去找父类加载器,如果父类没有那么就会在去向上加载,一直加载到引导类加载器的时候,如果还是没有那么就会向下加载,也就是这时候才会加载到系统类加载器去进行加载。 右边的是JAVA9的加载方式: JAVA9移除了扩展类加载器,引入了平台类加载器,并且加载方式引入了模块化的概念,当进行加载时,先加载平台类加载器,去模块化中找寻类,如果没有就在向上寻找,一直到引导类加载器,如果还是没有找到,那么就往系统类加载器去加载。
