当前位置: 首页 > article >正文

java Jvm 双亲委派模型

一句话总结:类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。

官方:Java类加载器(英语:Java Classloader)是Java运行时环境(Java Runtime Environment)的一部分,负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,即第一次使用该类时才加载。由于有了类加载器,Java运行时系统不需要知道文件与文件系统。

JVM中有3个默认的类加载器:
1、启动类加载器 (Bootstrap Class Loader)

2、扩展类加载器(Extension Class Loader)

3、应用程序类加载器(Application Class Loader)

image.png

1、当需要加载类时,会优先委派当前所在的类的加载器的父加载器去加载这个类。

2、如果父加载器无法加载到这个类时,再尝试在当前所在的类的加载器中加载这个类。

image.png

意义:
1、因为双亲委派是向上委托加载的,所以它可以确保类只被加载一次,避免重复加载;
2、可以避免核心类被串改:Java的核心API都是通过引导类加载器进行加载的,如果别人通过定义同样路径的类比如java.lang.Integer,类加载器通过向上委托,两个Integer,那么最终被加载的应该是jdk的Integer类,而并非我们自定义的,这样就避免了我们恶意篡改核心包的风险请添加图片描述


http://www.kler.cn/a/537588.html

相关文章:

  • 【RocketMQ 存储】- 同步刷盘和异步刷盘
  • 【Pycharm+Git+Gitlab】安装部署(粗糙版)
  • yum 安装mysql
  • 【C++篇】C++11新特性总结1
  • C++----继承
  • 【LeetCode】152、乘积最大子数组
  • 【Ubuntu】本地部署Deep Seek(深度求索)大模型的保姆级教程 | 详细教程
  • ubuntu文件同步
  • MyCAT 2实现mysql8主从同步读写分离
  • 通讯录管理小程序
  • 【AI大模型】Cherry Studio和Deepseek模型搭建本地知识库+硅基流动API调用+本地ollama模型调用
  • 政采云业务网关实践:使用 Higress 统一替代 APISIX/Kong/Istio Ingress
  • 【AI日记】25.02.08
  • 【梦想终会实现】Linux驱动学习6
  • 部署open webui 调用ollama启动的deepseek
  • android设置添加设备QR码信息
  • 【Prometheus】如何通过prometheus监控springboot程序运行状态,并实时告警通知
  • Git仓库托管基本使用03——远程仓库
  • 使用Vue开发可复用的Web Components:跨框架组件封装指南
  • 【学术投稿-第五届消费电子与计算机工程国际学术会议】HTML核心元素详解:超链接、列表、表格与实用技巧
  • 【10.7】队列-解预算内的最多机器人数目
  • 一键操作,完美解决办公问题!
  • layui组件库的年份选择器怎么设置区间超过区间不可点击
  • 基于Docker搭建ES集群,并设置冷热数据节点
  • 【Flink实战】Flink -C实现类路径配置与实现UDF Jar
  • linux上scp能不能取代rsync