双亲委派模型

HexThinking HexThinking     2023-04-24     174

关键词:

在Java中,双亲委派模型是一种类加载机制。当一个类需要被加载时,首先会委托父类加载器去查找是否已经加载过该类。如果父类加载器能够找到并加载该类,则直接返回该类的Class对象;否则,就将该请求“下放”给子类加载器去处理。

这个过程会一直向下递归,直到顶层的启动类加载器。如果该类在所有的加载器中都没有找到,则会抛出ClassNotFoundException异常。

这种类加载机制的好处在于,可以有效地避免同名的类文件被重复加载,从而降低了系统资源的浪费。同时,由于父类加载器加载的类能够被子类加载器所共享,也保证了类的安全性和稳定性。

总之,Java中的双亲委派模型实现了Java字节码的动态加载和隔离,是保证Java应用程序安全、稳定运行的重要机制之一。

此双亲委派模型的顶层父类加载器是启动类加载器(Bootstrap ClassLoader),它是由JVM本身实现的,用于加载核心库(如rt.jar)等。接下来依次是扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader或System ClassLoader),它们也是由JVM提供的默认实现。

扩展类加载器用于加载Java平台的扩展库(如jce.jar),而应用程序类加载器则用于加载应用程序的classpath路径下的类(如自定义的Java代码)。在这个过程中,如果需要加载一个类,就会先委托给上一级父类加载器,直到到达顶层的启动类加载器。

如果所有的父类加载器都无法找到该类,那么就会由当前类加载器来尝试加载该类。这样就保证了不同的类被加载器加载后具有独立的命名空间,从而避免了类之间的冲突和混乱。

总之,Java中的双亲委派模型是由JVM提供的一种类加载机制,它通过一定的规则来委派不同的类加载器去加载类文件,从而保证类的安全性和稳定性。

类加载器双亲委派模型机制?

什么是双亲委派模型(Parent-DelegationModel)?JVM中加载类机制采用的是双亲委派模型,顾名思义,在该模型中,子类加载器收到的加载请求,不会先去处理,而是先把请求委派给父类加载器处理,当父类加... 查看详情

jvm——类加载器的双亲委派模型

类加载器双亲委派模型,如下图所示:双亲委派模型的工作过程  如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此... 查看详情

java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?(代码片段)

文章目录一、前言二、类加载器三、双亲委派机制1、什么是双亲委派2、为什么要双亲委派?四、破坏双亲委派五、Class.forName默认使用的类加载器六、线程上下文类加载器七、要点回顾一、前言平时做业务开发比较少接触类... 查看详情

类加载器-双亲委派模型

双亲委派模型从虚拟机的角度来讲,只存在两种类加载器:(1)启动类加载器:BootstrapClassLoader,由C++实现,不是ClassLoader子类,属于虚拟机自身的一部分(2)所有其他类加载器:这些类加载器由Java语言实现,独立于JVM外部,... 查看详情

双亲委派模型

本文参考《深入理解java虚拟机》双亲委派模型中将 类加载器进行等级划分,当一个类加载器收到一个类加载的请求时,自己先不会处理这个请求,而是将这个请求交给父类加载器,最终请求会传到启动类加载器,如果父类... 查看详情

双亲委派模型(代码片段)

title:双亲委派模型date:2018-10-2415:05:54tags:categories:---双亲委派模型本来应该是jvm类加载机制的内容,但这个太重要了,我就单独写了一篇。jvm虚拟机有一个重要的判断(之一)两个类是否相等的依据,就是是否是同一个类加载器加... 查看详情

jvm的类加载器,以及双亲委派模型都是什么?(代码片段)

文章目录类加载器双亲委派模型启动类加载器(BootstrapClassLoader)扩展类加载器(ExtensionClassLoader)应用程序类加载器(ApplicationClassLoader)双亲委派模型工作过程双亲委派源码追踪类加载器Java虚拟机设计团... 查看详情

jvm的类加载器,以及双亲委派模型都是什么?(代码片段)

文章目录类加载器双亲委派模型启动类加载器(BootstrapClassLoader)扩展类加载器(ExtensionClassLoader)应用程序类加载器(ApplicationClassLoader)双亲委派模型工作过程双亲委派源码追踪类加载器Java虚拟机设计团... 查看详情

类加载器和双亲委派模型

原文地址:http://blog.csdn.net/z69183787/article/details/51657612 类加载器按照层次,从顶层到底层,分为以下三种: (1)启动类加载器(BootstrapClassLoader)  这个类加载器负责将存放在JAVA_HOME/lib下的,或者被-Xbootclasspath参... 查看详情

双亲委派模型(代码片段)

类加载器介绍:从虚拟机的角度说,只存在两种类加载器:一种是启动类加载器,这个类加载器使用C++编写,是虚拟机自身的一部分;另一种是所有其他类的加载器,这些类加载器使用Java编写,独立于虚拟机,并且全部继承自... 查看详情

双亲委派模型

从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(BootstrapClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另一种就是所有其他的类加载器,这... 查看详情

jvm类加载器与双亲委派模型

...#xff0c;到底应该由哪个类加载器加载呢?这时候就需要双亲委派机制来告诉JVM使用哪个类加载器加载。在讲解什么是双亲委派机制之前,我们先看一下有哪些加载器。从Jav 查看详情

jvm类加载器与双亲委派模型

...#xff0c;到底应该由哪个类加载器加载呢?这时候就需要双亲委派机制来告诉JVM使用哪个类加载器加载。在讲解什么是双亲委派机制之前,我们先看一下有哪些加载器。从Jav 查看详情

jvm类加载器以及双亲委派模型

  JVM是什么?类加载器是什么?  JVM是虚拟机(JavaVirtualMachine),JVM是运行字节码的。JVM有针对不同系统的特定实现(Windows、Linux、macOS),目的是使用相同的字节码,它们都会给出相同的结果。 类加载器(Clas... 查看详情

jvm总括四-类加载过程双亲委派模型对象实例化

JVM总括四-类加载过程、双亲委派模型、对象实例化一、类加载过程一定要注意每个过程执行的内容!!!!!!1、Load:  将编译后的.class文件以二进制流的方式加载到JVM内存中,并转化为特定的数据结构,用到的就是classLoad... 查看详情

jvm类加载器与双亲委派模型(代码片段)

...oader类前面说到,ClassLoader这个顶级父类只是定义好了双亲委派模型的工作机制;但是ClassLoader是个抽象类,无法直接创建对象,所以需要由继承它的子类完成创建对象的任务。子类需要自己实现findClass方法,... 查看详情

类的加载和双亲委派模型

类加载器基本概念顾名思义,类加载器(classloader)用来加载Java类到Java虚拟机中。一般来说,Java虚拟机使用Java类的方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节代码(.class文件)。类加载器负... 查看详情

双亲委派模型

在Java中,双亲委派模型是一种类加载机制。当一个类需要被加载时,首先会委托父类加载器去查找是否已经加载过该类。如果父类加载器能够找到并加载该类,则直接返回该类的Class对象;否则,就将该请求“下放”给子类加载... 查看详情