美文网首页
类记载器和双亲委派机制

类记载器和双亲委派机制

作者: salix_ | 来源:发表于2020-04-08 15:02 被阅读0次

一:类加载器分类

1. 系统类加载器(用c++写的)

  • Boootstrap ClassLoader是唯一的系统类加载器,嵌套在JVM内部。
  • 用来加载String、Integer等核心类库,包含java,javax,sun等开头的类。
  • 用来加载扩展类记载其ExtClassLoder,AppClassLoader。

2. 自定义类加载器(用java写的)

  1. 定义:派生于ClassLoader类的类加载器。
  2. 自定义类是AppClassLoader加载的(包括一些外部导入的jar包),AppClassLoader的父加载器是ExtClassLoader(补充BootStrap Classlodaer加载扩展的类库,jre/lib/ext下面的包等等)。ExtClassLoader的父加载器是Boootstrap ClassLoader。

二:双亲委派机制

AppClassLoader的父加载器是ExtClassLoader。ExtClassLoader的父加载器是Boootstrap ClassLoader。他们并不是java中的extends关系,而是我们自己规定的等级,谁是谁的父亲,所谓双亲委派机制(又叫坑爹机制),爸爸能干的活自己绝对不干,直接任务往上派发。

有啥用?
  1. 避免类的重复加载
  2. 安全啊,比如我在主目录下建立一个java.lang.String的自定义类(注意跟java库中的报名是一样的哦),然后我们new我们自己定义的String,会发现其实new的还是java库中的类。如果java机制是new了我们自己定义的类。那你写项目的时候,我趁你不注意,偷偷自己实现一个盗版的String放到你的项目上(在java库String上加点bug),你会不会崩溃?
    AppClassLoader可以引入,就给父亲,ExtClassLoader也可以搞就继续往上传,BootStrap ClassLoader也可以加载(并且它没有父亲了),它就只能自己弄了(造福子孙,孩子们少干点),就避免了AppClassLoader(用来加载自定义类)加载自定义类产生安全问题。

相关文章

  • 类记载器和双亲委派机制

    一:类加载器分类 1. 系统类加载器(用c++写的) Boootstrap ClassLoader是唯一的系统类加...

  • 四、初识ClassLoader

    双亲委派的定义 类加载器的父亲委托机制(双亲委派机制) 类加载器加载一个类时,会优先交给其父的加载器加载,父加载器...

  • 为什么使用双亲委派机制?

    为什么使用双亲委派机制? 专业名词 说双亲委派机制就不得不说类加载器。 引导类加载器:加载%JAVA_HOME%/...

  • SPI的ClassLoader问题

    问题 为什么说spi服务机制破坏了双亲委派模型? 双亲委派机制 启动类加载器(Bootstrap ClassLoa...

  • 3.手写自己的java类加载器

    类的加载过程?何为双亲委派机制?为啥这么设计?实现一个自己的类加载器?如何打破双亲委派机制? 1.类加载器 jar...

  • Java虚拟机

    JVM 组成部分 类加载器 执行引擎 内存区 本地方法调用 类加载器 双亲委派模型 类的加载过程采用双亲委派机制,...

  • 简单了解什么是双亲委派机制?

    什么是双亲委派机制 了解双亲委派,需要先了解下JAVA的类加载器ClassLoader,java的类加载器主要有以...

  • 双亲委派机制

    说到双亲委派机制,首先你要了解,什么是类加载器,下面就先简单说一下类加载器,后面在对双亲委派机制进行了解。 一、类...

  • JAVA类加载机制

    jvm之java类加载机制和类加载器(ClassLoader)的详解java类加载机制:全盘负责、双亲委派、缓存机...

  • 从类加载开始的JVM学习

    目录 引言 java类加载流程 java类加载机制- 类加载原理- 双亲委派机制 Tomcat中双亲委派机制的应用...

网友评论

      本文标题:类记载器和双亲委派机制

      本文链接:https://www.haomeiwen.com/subject/kzrtmhtx.html