网站注册好域名怎么办,wordpress自动原创,国网交流建设公司网站,帮别人做网站的公司是外包吗目录 1.类加载器的分类1.实现方式分类1.虚拟机底层实现2.JDK中默认提供或者自定义 2.类加载器的分类-启动类加载器3.类加载器的分类-Java中的默认类加载器4.类加载器的分类-扩展类加载器5.类加载器的分类-类加载器的继承 2.类加载器的双亲委派机制 类加载器#xff08;ClassLo… 目录 1.类加载器的分类1.实现方式分类1.虚拟机底层实现2.JDK中默认提供或者自定义 2.类加载器的分类-启动类加载器3.类加载器的分类-Java中的默认类加载器4.类加载器的分类-扩展类加载器5.类加载器的分类-类加载器的继承 2.类加载器的双亲委派机制 类加载器ClassLoader是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器只参与加载过程中的字节码获取并加载到内存这一部分。
1.类加载器的分类 类加载器分为两类一类是Java代码中实现的一类是Java虚拟机底层源码实现的 1.实现方式分类
1.虚拟机底层实现 源代码位于Java虚拟机的源码中实现语言与 虚拟机底层语言一致比如Hotspot使用C。 加载程序运行时的基础类 保证Java程序运行中基础类被正确地加载 比如java.lang.String确保其可靠性 2.JDK中默认提供或者自定义 JDK中默认提供了多种处理不同渠道的类加载器 程序员也可以自己根据需求定制 继承自抽象类ClassLoader 所有Java中实现的类加载器都需要继承 ClassLoader这个抽象类 类加载器的设计JDK8和8之后的版本差别较大JDK8及之前的版本中默认的类加载器有如下几种
2.类加载器的分类-启动类加载器 ⚫ 启动类加载器Bootstrap ClassLoader是由Hotspot虚拟 机提供的、使用C编写的类加载器。 ⚫默认加载Java安装目录/jre/lib下的类文件比如rt.jar tools.jarresources.jar等。 3.类加载器的分类-Java中的默认类加载器 ⚫ ·扩展类加载器和应用程序类加载器都是JDK中提供的、使用Java编写的类加载器。 ⚫ 它们的源码都位于sun.misc.Launcher中是一个静态内部类。继承自URLClassLoader。具备通过目录 或者指定jar包将字节码文件加载到内存中。 4.类加载器的分类-扩展类加载器
⚫ 扩展类加载器Extension Class Loader是JDK中提供的、 使用Java编写的类加载器。 ⚫ 默认加载Java安装目录/jre/lib/ext下的类文件。
5.类加载器的分类-类加载器的继承
⚫ ·扩展类加载器和应用程序类加载器都是JDK中提供的、使用Java编写的类加载器。 ⚫ 它们的源码都位于sun.misc.Launcher中是一个静态内部类。继承自URLClassLoader。具备通过目录 或者指定jar包将字节码文件加载到内存中。
2.类加载器的双亲委派机制 每个Java实现的类加载器中保存了一个成员变量叫“父”Parent类加载器可以理解为它的上级 并不是继承关系。 ⚫ 应用程序类加载器的parent父类加载器是扩展类加载器而扩展类加载器的parent是空。 ⚫ 启动类加载器使用C编写没有上级类加载器。 ⚫ 在类加载的过程中每个类加载器都会先检查是否已经加载了该类如果已经加载则直接返回否则会将加载请求委派给父类加载器。 ⚫ 如果类加载的parent为null则会提交给启动类加载器处理。 ⚫ 如果所有的父类加载器都无法加载该类则由当前类加载器自己尝试加载。所以看上去是自顶向下尝试 加载。 ⚫ 第二次再去加载相同的类仍然会向上进行委派如果某个类加载器加载过就会直接返回 双亲委派机制指的是自底向上查找是否加载过再由顶向下进行加载。