双亲委派机制----类的加载过程以及沙箱安全机制

双亲委派机制

当加载一个类的时候会经过双亲委派机制,一层一层向上询问类是否已经加载了

java中存在三种类加载器

  • C/C++库编写的引导类加载器BootStrapClassLoader
  • 扩展类加载器ExtensionClassLoader
  • 应用程序类加载器ApplicationClassLoader

以及自定义的ClassLoader

当程序中需要加载一个类时,首先会向上传递是否加载了这时就会传递给ExtensionClassLoaderExtensionClassLoader有父类就会接着传递给父类,一直到顶层的BootStrapClassLoaderBootStrapClassLoader会尝试加载类,如果失败,向下传递给ExtensionClassLoader,如果也失败则接着向下传递尝试加载。

也就是说总的会先文引导类加载器是否加载了,然后一层一层向下的询问。


沙箱安全机制

引导类加载器会先加载jdk自带的文件,如果有一个外来类需要加载,并且包名和类名相同,则由于优先由引导类加载了自带的类,所以不会加载这个不符合规范的类,这样保护了java核心源代码,也称沙箱安全机制

你可能感兴趣的:(#,JVM专栏)