类加载器和双亲委派机制体会及分析和arthas使用

类加载器的分类

验证流程使用arthas
arthas下载地址

Releases · alibaba/arthas (github.com)

使用过程

想要被arthas识别到 需要让应用程序不退出 System.in.read();

随便运行一个类

public class HshbDemo {public static final  int a= 1;public static void main(String[] args) throws IOException {HshbDemo test4 = new HshbDemo();System.out.println(a);System.in.read();}
}

启动arthas

可以看到这个类 选择对应类的id后  输入classloader 可以看到里面确实有

启动类加载器,扩展类加载器,应用程序类加载器

如果选择id时报错 那就是有arthas没关

解决办法

重新启动arthas 进入错误提示的那个id里面 输入stop 再重新启动 即可使用

启动类加载器

rt.jar 里面存的是java的基础类 例如java.lang.String ,日期类等

验证使用参数扩展

作用是开发中有时候会开发一些基础类,需要每个程序都使用到

测试demo
public class HshbDemo {static {System.out.println("启动类加载器hshb被加载了");}
}

将其打为jar包

在idea中添加jvm参数 a: 代表添加jar包

-Xbootclasspath/a:E:/java/jvmDemo/target/jvmDemo.jar

可以看到已经加载进启动类了

通过   可以触发类的初始化

Class.forName("com.heima.HshbDemo"); 

再打印类加载器 可以看到 为null 这是因为启动类加载器 java程序员是无法用代码获取的

扩展类加载器和应用程序类加载器

使用参数扩展要用;隔离开, 如果路径含有空格 需要加给整个路径加双引号

应用程序类加载器 加载的是应用使用的类,它包括了启动类加载器所加载的类,那么所加载的类会重复加载吗 答案是不会

首先要了解双亲委派机制

类的双亲委派机制

 

双亲委派机制有什么用?

1.保证核心类不会被恶意替换

2.保证类不会被重复加载

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

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

相关文章

企业营销战略新思考:营销5.0与开源AI智能名片S2B2C商城小程序引领私域流量经营新纪元

随着互联网的深入发展,企业营销战略已经不再是单一、静态的规划,而是一个持续进化、与市场紧密相连的动态过程。在这个过程中,营销5.0和开源AI智能名片S2B2C商城小程序的结合,为企业营销战略注入了新的活力,也为私域流…

IntelliJ IDEA - Auto filling Java call arguments 插件教程

首先,安装该插件,下载完毕后重启 IDEA 当 userService 中方法需要参数的时候,我们一般都是自己手动写这些参数,是很费劲的。因此就出现了一个插件解决这类问题 Auto filling Java call arguments 光标点击需要填写参数的位置 Alt …

ESP32-C3第二路串口(非调试)串口打通(4)

接前一篇文章:ESP32-C3第二路串口(非调试)串口打通(3) 本文内容参考: 基于 esp-idf 的 UART 应用例程解读_uart asynchronous example with separate receive an-CSDN博客 特此致谢! 上一回对…

品深茶的抗癌效果怎么样?

茶叶中的一些成分,如茶多酚、儿茶素等,具有抗氧化和抗炎作用,这些作用在一定程度上可以抑制癌细胞的生长和扩散。 然而,这些成分在茶叶中的含量和生物利用率会受到多种因素的影响,如茶叶的品种、制作工艺、饮茶方式等…

我开源了一款阿里云OSS的spring-boot-starter

在上一篇文章中我们介绍了如何使用SpringBoot集成阿里云oss: 什么!没有Starter的阿里云OSS也能集成到SpringBoot? 但是这个方式还是需要自己去写配置类去配置很多的东西,那么我在想,为什么不自己写一个阿里云OSS的spri…

K8s: Prometheus 服务结构以及基础抓取数据服务部署

Prometheus 发布应用之后,就有持续运维的事情,就是平台监控Prometheus 是一个云原生的日志监控平台,是一个实时标准的一个技术它是著名的 cncf 里的一个重要的开源项目 上面整个图片是在云原生应用及K8s应用架构下的一个日志监控的一个标准的…

杰发科技AC7840——SPI通信简介(1)_跑通Demo

0. 简介 一些配置项: CPHA:相序 CPLO:极性 看着demo需要按键,于是去掉按键,去掉打印,直接输出波形看逻辑分析仪的信号。 其实现在做这些demo测试应该都有逻辑分析仪,直接看波形更直观一点。…

【C 数据结构】图的存储结构

文章目录 【 1. 图的顺序存储结构 】1.1 基本原理1.2 顺序存储结构的 C 实现 【 2. 图的链式存储结构 】2.1 图的临接表存储结构2.1.1 临接表的 基本原理2.1.2 临接表的 链表节点2.1.3 邻接表 各结构体的C实现2.1.4 临接表 计算顶点的出度和入度邻接表计算 无向图的出度和入度邻…

一款可视化正则表达式工具

regex-vis是一款在线免费且可视化的正则表达式工具 界面图: 只能输入由26个英文字母组成的字符串 ^[A-Za-z]$ 只能输入数字 ^[0-9]*$测试错误 测试正确 快来感受一下叭 官方网址: Regex VisRegex visualizer & editor, make the regular expr…

小红书聚光里的流量洼地:N个百万级别的捡钱机会

小红书聚光里的流量洼地:N个百万级别的捡钱机会 一、前言 在最近的分享会上,笔者主要围绕小红书聚光投流的经验和对其他行业赛道的调研,与大家探讨了小红书的红利机会。在这个竞争激烈的市场中,如何抓住小红书这一流量洼地&…

回溯法——(1)装载问题(C语言讲解)

目录 一、装载问题 1.问题概括: 2.解决方案(思路): 3.图片讲解(超详细): 4.代码分析: 二、算法改进:引入上界函数 1.问题概念: 2.图片讲解&#xff1a…

【设计模式】工厂方法模式(Factory Method Pattern)

目录标题 工厂方法设计模式详解1. 介绍2. 结构3. 实现步骤3.1 创建抽象产品接口3.2 创建具体产品类3.3 创建抽象工厂接口3.4 创建具体工厂类3.5 客户端使用 4. 好处与优点5. 坏处与缺点6. 适用场景7. 总结 工厂方法设计模式详解 1. 介绍 工厂方法模式是一种创建型设计模式&am…

SpringCloud学习笔记(一)微服务介绍、服务拆分和RestTemplate远程调用、Eureka注册中心

文章目录 1 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务1.4 SpringCloud1.5 总结 2 服务拆分与远程调用2.1 服务拆分原则2.2 服务拆分示例2.2.1 搭建项目2.2.2 创建数据库和表2.2.3 实现远程调用2.2.3.1 需求描述2.2.3.2 注册RestTemplate2.2.3.3 实现远程调用 2.2.4 提供…

strtok,perror,strerror函数·

strtok函数 strtok函数是C语言中的一个字符串函数,用于将一个字符串根据特定的分隔符拆分成多个子字符串。它的函数原型如下: char *strtok(char *str, const char *delim); 在这个函数中,str表示要进行拆分的字符串,delim表示…

Spark01 —— Spark基础

文章目录 Spark01 —— Spark基础一、为什么选择Spark?1.1 MapReduce编程模型的局限性1.2 Spark与MR的区别1.3 版本1.4 优势1.5 Spark其他知识1、多种运行模式2、技术栈3、spark-shell:Spark自带的交互式工具4、Spark服务 二、Spark的基础配置三、Spark实…

Spring-Mybatis-Xml管理(动态sql语句,sql语句复用)

目录 前置条件 动态SQL语句 动态删除数据 1.集合类型:数组 2.集合类型: List 型 SQL语句重用 说明 🧨前置条件 已经创建了实体类(这边举个例子) 实体类User表 表中的字段名User实体类的属性值id (bigint auto increment) 长整型 自动增长private Long iduser…

day17-day20_项目实战项目部署

万信金融 项目部署 目标: 理解DevOps概念 能够使用Docker Compose部署项目 理解持续集成的作用 会使用Jenkins进行持续集成 1 DevOps介绍 1.1 什么是DevOps DevOps是Development和Operations两个词的缩写,引用百度百科的定义: DevOps…

《C语言深度解剖》(10):数组指针、指针数组和数组指针数组

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》《精通C指针》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多C语言深度解剖点击专栏…

重学java 26.面向对象 内部类⭐

“别担心,你一定能如愿。” —— 24.4.29 1.什么时候使用内部类: 当一个事物的内部,还有一个部分需要完整的结构去描述,而内部的完整结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类 比如&#xff1…

人工智能论文:BERT和GPT, GPT-2, GPT-3 的简明对比和主要区别

在BERT的论文里面: 2018.10 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,BERT已经解释了BERT,GPT,ELMo的区别。 *ELMo为双向RNN,请忽略。 主要区别: BERT使用的是…