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

JVM(十)-- 类的加载器

目录

一、概述

1. 类的加载分类

2. 类加载机制的基本特征

二、类加载器的分类

1. 引导类加载器

2. 扩展类加载器

3. 系统类加载器

三、双亲委派机制

1. 定义与本质

2. 优势和劣势

3. 破坏双亲委派机制

四、沙箱安全机制

五、自定义类加载器

1. 为什么要自定义类加载器?

2. 实现方法


一、概述

类加载器是JVM执行类加载机制的前提。

ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目标类对应的java.lang.class对象实例。然后交给Java虚拟机进行链接、初始化等操作。因此,ClassLoader在整个装载阶段,只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化行为。至于它是否可以运行,则由执行引擎决定。

1. 类的加载分类

2. 类加载机制的基本特征

二、类加载器的分类

JVM支持两种类型的类加载器,分别为引导类加载器(启动类加载器)和自定义类加载器

启动类加载器是使用C++实现的,其他的加载器都是使用Java来实现的。

1. 引导类加载器

该加载器用来加载Java的核心类库,用于提供JVM自身需要的类。

它用于加载扩展类加载器和应用程序类加载器,并指定为它们的父类加载器。

2. 扩展类加载器

3. 系统类加载器

自定义的类默认使用系统类加载器。

三、双亲委派机制

1. 定义与本质

双亲委派机制就是为了保证类的唯一性,只能被加载一次。

2. 优势和劣势

优势:

  • 避免类的重复加载,确保了一个类的全局唯一性。
  • 保护程序安全,防止核心API被篡改。

劣势:

  • 检查类是否加载的委托过程是单向的,这个方式虽然从结构上来说比较清晰,使各个ClassLoader的职责非常明确,但是会带来一个问题,即顶层的ClassLoader无法访问底层的ClassLoader所加载的类

3. 破坏双亲委派机制

第一次:

第二次:


第三次:

四、沙箱安全机制

沙箱机制就是将Java代码限定在虚拟机特定的运行范围中,并且严格限制代码对本地系统资源的访问。通过这样的措施来保证对代码的有限隔离,防止对本地系统造成破坏。

五、自定义类加载器

1. 为什么要自定义类加载器?

  • 隔离加载类:在某些框架内进行中间件与应用的模块隔离,把类加载到不同的环境。比如:阿离内部某容器的框架通过自定义类加载器确保应用中依赖的jar包不会影响到中间件运行时使用的jar包。
  • 修改类加载的方式:类的加载模型并非强制,可以根据实际情况在某个时间点按需进行动态加载。
  • 扩展加载源:比如从数据库、网络等地方进行加载。
  • 防止源码泄露:Java代码容易被编译和篡改,可以进行编译加密。那么类加载器也需要自定义,还原加密的字节码。

2. 实现方法

http://www.dtcms.com/a/478217.html

相关文章:

  • 软考刷题--数据库
  • 重庆建网站公司做网站的等级保护要多少钱
  • 标签之文本(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • 论文阅读---CARLA:用于时间序列异常检测的自监督对比表示学习方法
  • 做微信推送的网站wordpress 默认相册
  • 15 【C++11 新特性】统一的列表初始化和统一的声明
  • OpenCV计算机视觉实战(26)——OpenCV与机器学习
  • ACE会成为下一代上下文工程技术吗?
  • GitHub 热榜项目 - 日榜(2025-10-13)
  • 网站首页关键如何优化网络促销的方法有哪些
  • CTFSHOW WEB 2
  • 学术研究者的AI记录工具对比评测
  • mianf网站换友网站
  • 旧电脑变废为宝:Puter+cpolar打造你的专属云盘
  • springboot考试管理系统-计算机毕业设计源码84001
  • 手写MyBatis第106弹:#{}预编译安全机制 vs ${}字符串替换风险 - 源码级深度解析
  • 【Pytorch】数学运算
  • 金泉网站建设开发手机网站开发注意
  • 当Excel遇上大语言模型:ExcelAgentTemplate架构深度剖析与实战指南
  • 新农村建设在哪个网站申请vi设计包含的内容
  • 达梦数据库相关术语及管理操作
  • 百度网站推广公司济南网络优化推广
  • 【SpringBoot从初学者到专家的成长14】SpringBoot项目结构介绍
  • mongodb一个服务器部署多个节点
  • 基金网站制作工程承包公司
  • 成都企业网站建设价格搜索引擎收录
  • 第9章:两条道路的风景:技术与管理的真实世界(4)
  • 基于frenet坐标系的规划与避障
  • 从本地到云端:Fiora+cpolar打造真正的私密社交通讯站
  • Vue Router 导航守卫