类加载器分类
启动类加载器
启动类加载器主要加载JavaHome中lib目录下的jar包。
扩展类加载器
扩展类加载器主要加载JavaHome中lib/ext目录下的扩展jar包。
应用类加载器
应用类加载器主要加载classpath下的jar包。
用户类加载器
用户自定义类加载器,可以指定指定路径或者指定的类进行加载。
双亲委派模式
当一个类需要加载时,首先不会自己先加载而是先去看看它的父级有没有加载过,如果父级已经加载,则不会在加载,而是直接返回该类,如果没有加载则该类会自己进行加载
好处显而易见:防止原生api被篡改,导致某些安全问题的出现以及保证原生api的稳定性,
防止类重复被加载,进而提升加载效率。
双亲委派原码:ClassLoader方法中的loadClass