自定义双亲委派-JVM(三)

news2024/11/24 0:12:19

上篇文章说了java类加载源码,双亲委派的加载。

JVM类加载&双亲委派-JVM(二)

  • 自定义类加载器
  1. 全盘负责委托机制

“全盘委托”指当一个classLoader装载一个类时,除非显示的使用另外一个classLoader加载,否则该类所依赖的类也由该classLoader加载。

  1. 自定义类加载器

自定义继承的classLoader默认是app类加载器,上面还有ext扩展类加载器,以及bootStrapClass核心类加载器。

首先需要继承ClassLoader

因为这个类有两个关键方法,loadClass(String,boolean)实现了双亲委派,另一个findClass,默认是空方法,需要自己重写findClass

findClass里我们重写的一个方法是defineClass也是jvm自己的一个方法逻辑。

 

这时候我们的sout里面打印的是什么类的加载器呢?

答案是app加载器,为什么,原因就是双亲委派,因为我们前面已经有一个MAIN230629这个类,它是由app类加载器加载。

如果我们把项目里这个类删掉,那么它打印的就是我们自定义你的myClassLoadTest。

  1. 打破双亲委派

我们前面自定义的loadClass是调用父类的,父类里面是支持双亲委派的,那么我们自己如何打破呢?

重写父类的loadClass,和findClass一样进行重写。

把双亲委派那段注释。

流程则是先看自己是否有,没有为null的时候,直接调用findClass自己去加载。

需要注意:核心类都不能加载

Object.class会报沙箱机制安全问题,因为不能加载。

所以不光要解决双亲委派加载问题,还要解决核心类由引导加载器加载,而自己定义的类由自定义加载器加载。

所以我在代码里加了如果不是我自己定义的包开头,则去用parent加载。

 

因为现在打破了双亲委派,再执行main方法。

结果输出的是:myClassLoader

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用命令提示符重新启动Windows 资源管理器?

电脑资源管理器出现问题,导致电脑黑屏,如何使用命令提示符重新启动Windows 资源管理器呢?出现这个问题的时候,不要慌,按照下面的操作步骤,大概率是可以复原的,当然你觉得这样比较麻烦&#xff0…

C语言offsetof宏的使用与模拟实现

⭐️ 往期文章 ✨链接1:C语言文件打开关闭详解、文件顺序读写详解。 ✨链接2:C语言文件随机读写详解(fseek、ftell、rewind)。 ✨链接3:C语言scanf/fscanf/sscnaf和printf/fprintf/sprintf的区别。 ✨链接4:C语言打开文件一次既可…

论文不详细解读(二)——SimCLR系列

1. SimCLR v1 论文名称: A Simple Framework for Contrastive Learning of Visual Representations 开源地址:https://github.com/google-research/simclr 大佬论文解读:https://zhuanlan.zhihu.com/p/378953015 highlight:更多…

机器学习10:正则化-Regularization

目录 1.什么是正则化? 2.简化正则化:Lambda 3.两个练习 3.1 问题一 3.2 问题二 4.参考文献 1.什么是正则化? 考虑以下泛化曲线,它显示了训练集和验证集相对于训练迭代次数的损失。 图 1. 训练集和验证集的损失 图 1 显示了…

Docker数据卷与容器的挂载

什么是Docker数据卷: 数据卷(Volumes)是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步。一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。简单来说数据卷本质其实是…

面试之谈谈你对SpringMVC的理解:

1.把传统的MVC架构里面的Controller控制器进行了拆分。分成了前端控制器的DispatcherServlteth和后端控制器的Controoler. 2.吧Model模型拆分成了业务层Service和数据访问层Repository 3.在试图层,可以支持不同的试图,比图Freemakr,volocity,JSP等等。 所…

【多维Dij+DP】牛客小白月赛75 D

D-矩阵_牛客小白月赛75 (nowcoder.com) 题意: 思路: 首先,对于这种类似于多维BFS的东西,我们一定需要判断是否必要加上新的一维,即我们需要判断新的一维对决策有没有影响 在这道题中,如果把某一个位置取…

MySql脚本 asc 排序字段空值条目靠后的写法

场景: mysql中如果使用正序 asc 排序,那么默认是把排序字段值为空的条目数据,优先排到前面,这明显不符合需求,解决如下 一、重现问题 -- 按排序号-正序 select shop_id,sort_num,update_time from t_shop_trend_conte…

详解c++---哈希闭散列

目录标题 一道题了解哈希哈希的实现原理方法一方法二 准备工作insertfind函数erase函数检测代码 一道题了解哈希 点击此处来尝试做这道题 首先题目告诉我们这个字符串中只含有小写的英文字母而小写的英文字母只有26个,所以我们可以创建一个大小为26的字符数组用来记…

【python爬虫应用03】csdn个人所有文章质量分查询

🛠️ 环境准备 在开始编写代码之前,我们需要进行一些环境准备。以下是所需的环境和库: 操作系统:Windows编程语言:Python 3编辑器:VSCode(可选) 安装所需的库: reque…

2023年最新IDEA中 Java程序 | Java+Kotlin混合开发的程序如何打包成jar包和exe文件(gradle版本)

文章内容: 一. JAVA | JAVA和Kotlin混开开发的程序打包成jar方法 1.1 方法一 :IDEA中手动打包 1.2 方法二 :build.gradle中配置后编译时打包 二. JAVA | JAVA和Kotlin混合开发的程序打包成exe的方法 一. JAVA | JAVA和Kotlin混开开发的程序…

Javalin:一个轻量的 Web Framework

说起 Java 语言下的 Web 框架那就非 Spring Framework 不可了,但是今天在和别人在聊天的过程中发现了一个新奇的项目 Javalin。Javalin 是一个轻量的 Web 框架。支持 WebSocket, HTTP2 和异步请求。简单的看了一下官方的说明文档,确实非常轻量&#xff0…

【ISO26262】汽车功能安全第5部分:硬件层面

对于每种方法,应用相关方法的推荐等级取决于 ASIL等级,分类如下: ———“”表示对于指定的 ASIL等级,高度推荐该方法; ———“”表示对于指定的 ASIL等级,推荐该方法; ———“o”表示对于指定的 ASIL等级,不推荐也不反对该方法。 表2 硬件设计的安全分析 单点故障度量 图 C.…

共享平台用户行为研究

背景 “促进平台经济、共享经济健康发展”是我国第十四个五年规划和二〇三五年远景目标中的重要内容。 研究工作概述 围绕共享平台和双边用户价值创造一般理论和实践,本研究综合多种方法(LDA、社会网络分析、计量经济模型等)和多种数据源交…

chatgpt赋能python:用Python编写SEO文章的技巧

用Python编写SEO文章的技巧 SEO(Search Engine Optimization)是优化网站以在搜索引擎中获得更高排名的过程。编写有趣、有价值且SEO友好的内容是重要的一环。在这篇文章中,我们将探讨使用Python编写SEO文章的技巧。 着重标记加粗的标题 搜…

[Eigen中文文档] 在 BLAS/LAPACK 、英特尔® MKL 和 CUDA 中使用 Eigen

文档总目录 本文目录 在BLAS/LAPACK使用 Eigen在英特尔 MKL使用 Eigen链接 在 CUDA 内核中使用 Eigen 在BLAS/LAPACK使用 Eigen 英文原文(Using BLAS/LAPACK from Eigen) 自Eigen 3.3版本以及以后,任何F77兼容的BLAS或LAPACK库都可以用作稠密矩阵乘积和稠密矩阵分…

第九十四天学习记录:C++核心:类和对象Ⅲ(五星重要)

深拷贝与浅拷贝 深浅拷贝是面试经典问题&#xff0c;也是常见的一个坑 浅拷贝&#xff1a;简单的赋值拷贝操作 深拷贝&#xff1a;在堆区重新申请空间&#xff0c;进行拷贝操作 #define _CRT_SECURE_NO_WARNINGS 1#include<iostream> using namespace std;class Perso…

简述环保用电监管云平台

1、概述 推进打赢蓝天保卫战&#xff0c;打好碧水保卫战&#xff0c;打胜净土保卫战&#xff0c;加快生态环境保护、建设美丽中国&#xff0c;各省市结合物联网和大数据政策&#xff0c;也相继颁布有关污染治理设施用电监管平台等相关政策。针对企业内的环保设施、设备运行状况…

Spring Boot中Elasticsearch的连接配置、原理与使用

Spring Boot中Elasticsearch的连接配置、原理与使用 引言 Elasticsearch是一种开源的分布式搜索和数据分析引擎&#xff0c;它可用于全文搜索、结构化搜索、分析等应用场景。在Spring Boot中&#xff0c;我们可以通过Elasticsearch实现对数据的搜索和分析。本文将介绍Spring …

力扣 -- 62.不同路径、63.不同路径2

题目链接&#xff1a;64. 最小路径和 - 力扣&#xff08;LeetCode&#xff09; 63. 不同路径 II - 力扣&#xff08;LeetCode&#xff09; 以下是用动态规划的思想来解决这两道类似的动规的题目&#xff0c;相信各位老铁都是能够学会并且掌握这两道经典的题目的。 参考代码&am…