JVM系列(二)类加载之双亲委派

        双亲委派机制其主要作用有两点

(1)防止重复加载同一个类,保证了数据的安全性

(2)保证了核心的类不会被篡改,即使篡改了也不会是同一个类对象,从而保证了类的安全性

       我们的java程序在运行时,所有的类都是经过类加载器(ClassLoader)加载至JVM中去执行的,java为我们提供了三种类加载器

(1)启动类加载器 BootStrap ClassLoader(负责加载java目录下的lib核心类(java.*))

(2)扩展类加载器 Extension ClassLoader(负责加载java目录下的jre\lib\ext扩展类)

(3) Application ClassLoader(负责加载ClassPath环境变量下指定的java代码)

    还有一种就是我们可以进行自定义加载器(根据自己的需求进行编写需要加载的类)

加载的级别依次最高是启动类加载器(BootStrap ClassLoader)最低为自定义加载器

双亲委派的机制(先由父类加载器进行加载 否则由子类加载器进行加载)简单来说 一个类在加载过程中会先去询问父级加载器是否已经加载过,如果加载过则不再加载、否则就由自己来加载


总结:双亲委派机制并不是万能的,在某些的场景也需要进行打破双亲委派机制,例如Tomcat的类加载机制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容