首页 > 其他分享 >双亲委派机制一

双亲委派机制一

时间:2024-08-02 18:24:44浏览次数:11  
标签:委派 lang java String 双亲 机制 加载

类加载器 JDK8

  • 类加载器是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术
  • 类加载器只参与加载过程中的字节码获取并加载到内存这一部分

类加载器的分类

  • 扩展类加载器ExtClassLoader
  • 应用程序类加载器AppClassLoader
  • 启动类加载器BootstrapClassLoader(虚拟机底层C++实现的类加载器)

双亲委派机制

  • 解决一个类到底由谁加载的问题
  • 当一个类加载器接收到加载类的任务时,会自底向上查找是否被加载过,再自顶向下进行加载
    • 从顶往下依次为:BootstrapClassLoader、ExtClassLoader、AppClassLoader
  • 向上查找是否加载过
  • 向下尝试加载
  • 案例
ClassLoader classLoader = Test.class.getClassLoader();
Class<?> aClass = classLoader.loadClass("java.lang.String");
System.out.println(aClass.getClassLoader());

使用AppClassLoader加载java.lang.String,但是输入String的类加载器为null(BootstrapClassLoader),证明了向上查找是否加载过,加载过直接返回

双亲委派机制-问题

  • 重复的类
    • 如果一个类重复出现在三个类加载器的加载位置,应该由谁来加载?
    • 启动类加载器加载,根据双亲委派机制,它的优先级是最高的
  • String类能覆盖吗
    • 在自己的项目中去创建一个java.lang.String类,会被加载吗
    • 不能,会返回启动类加载器在rt.jar包中的String类

类加载器的双亲委派机制-面试

  • 当一个类加载器去加载一个类的时候,会自底向上查找是否加载过,如果加载过就直接返回,如果一直到最顶层的类加载器都没有加载,再由顶向下进行加载
  • 应用程序类加载器的父类加载器是扩展类加载器,扩展类加载器的父类是启动类加载器
  • 双亲委派机制的好处有两点
    • 避免恶意代码替换JDK中的核心类库,比如java.lang.String,确保核心类库的完整性和安全性。
    • 避免类被重复加载

标签:委派,lang,java,String,双亲,机制,加载
From: https://blog.csdn.net/aa2325727631/article/details/140871329

相关文章

  • 区块链的共识机制
    区块链的共识机制确保分布式网络中所有参与节点对区块链状态达成一致的算法说人话怎么证明你的东西是你的1.工作量证明(ProofofWork,PoW)概念:通过解决复杂的数学问题来竞争记账权,最先解出问题的节点获得区块奖励。应用:比特币、以太坊(计划从PoW转为PoS)。优点:高度去中......
  • 深入理解PHP的$_SESSION机制
    本文由ChatMoney团队出品PHP****中Session的声明与使用在PHP中,Session的设置与管理与Cookie不同,必须首先启动。这通过调用session_start()函数来完成。该函数的语法格式为:boolsession_start(void)注意:在调用session_start()之前不能有任何输出。当用户第一次访问网站时,s......
  • AndroidView事件体系,事件分发机制
    https://blog.csdn.net/qq_44076155/article/details/121582575 前言节选自《开发艺术》的事件分发章节,并结合https://blog.csdn.net/qq_44076155/article/details/121582575做一定总结问题在给一个view增加可拖动功能时,IDE给出了黄色警告,如下初步分析这里使用了View.se......
  • 深入理解MyCAT分库分表机制:架构师的秘密武器
    一、MyCAT分库和分表的概念1.分库(DatabaseSharding)分库是将一个大数据库拆分成多个小数据库,以减小单个数据库的压力并提高系统的扩展性。每个子数据库可以分布在不同的服务器上,从而分散负载并提高性能。示例:假设我们有一个用户信息数据库users_db,其中包含了大量的用......
  • STM32的内存映射机制详解
    目录前言一、基本概念二、内存映射的组成三、典型布局四、常用映射前言刚开始学习STM32的同学可能只知道按案例配置RAM、Flash的起始地址和容量,但是这个地址是怎么来的,可能并不清楚,接下来让我来给大家介绍一下STM32的内存映射机制。STM32的内存映射机制是一种将不同......
  • 易基因:MeRIP-seq+RNA-seq揭示家禽(鸡)脂肪沉积中的m6A RNA甲基化调控机制|项目文章
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。脂肪组织是主要的脂肪沉积和代谢场所,在人类和动物的健康、代谢平衡和免疫稳态中起着重要作用。肥胖引起的多种代谢疾病已成为全球性健康问题。家禽腹部脂肪的过量沉积也会导致代谢疾病和增加饲料浪费,从而增加家禽生产......
  • Java反射机制及其应用
    Java反射机制及其应用引言Java反射机制是Java语言的一项强大特性,它允许程序在运行时查询、访问和修改类、接口、方法、构造函数等的属性和行为。反射机制在动态代理、框架开发、依赖注入等领域有着广泛的应用。本文将介绍反射的基本概念、如何使用反射,以及反射在动态代理......
  • 浅聊java运行机制
    Java程序运行机制首先要清楚运行机制一般有两种解释型编译型解释型:顾名思义,就像有个人在旁边给你解释东西一样。比如看一本英文书,英语老师在旁边一句一句给你翻译解释。在写源代码时,每写一个解释型就会给你翻译一个。如果想要回到之前写的代码,又得重新进行翻译。这样效率......
  • 异常概述及其抛出与捕获机制
    文章目录一、异常概述1.1什么是异常1.2引入异常的好处1.3异常处理流程1.4异常处理机制的要求二、异常类型2.1异常类别2.2Exception类的层次三、抛出异常3.1throws关键字3.2throw关键字3.3链式异常3.4throw和throws的区别四、捕获异常(异常处理程序)4.1......
  • 使用Postman测试API短轮询机制:深入指南
    短轮询是一种Web开发中常用的技术,用于在客户端和服务器之间定期检查更新。与长轮询或WebSockets等技术相比,短轮询简单易实现,但可能带来较多的HTTP请求,从而增加服务器负担。Postman作为一个强大的API测试工具,可以用来模拟和测试短轮询机制。本文将详细介绍如何在Postman中测......