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

【JVM从入门到实战】(五)类加载器

一、什么是类加载器

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。
类加载器只参与加载过程中的字节码获取并加载到内存这一部分。
在这里插入图片描述

二、jdk8及之前的版本 类加载器分为三类:

  1. 启动类加载器-加载Java中最核心的类:启动类加载器(Bootstrap ClassLoader)是由Hotspot虚拟
    机提供的、使用C++编写的类加载器。默认加载Java安装目录/jre/lib下的类文件,比如rt.jar,tools.jar,resources.jar等。
    通过启动类加载器去加载用户jar包:推荐,使用jvm参数 -Xbootclasspath/a:jar包目录/jar包名 进行扩

  2. 扩展类加载器-允许扩展Java中比较通用的类、应用程序类加载器-加载应用应用使用的类、扩展类加载器和应用程序类加载器都是JDK中提供的、使用Java编写的类加载器。
    它们的源码都位于sun.misc.Launcher中,是一个静态内部类。继承自URLClassLoader。具备通过目录或者指定jar包将字节码文件加载到内存中。
    在这里插入图片描述

扩展类加载器(Extension Class Loader)是JDK中提供的、使用Java编写的类加载器。默认加载Java安装目录/jre/lib/ext下的类文件。
在这里插入图片描述

三、Arthas中类加载器相关功能

类加载器的详细信息可以通过classloader命令查看:
classloader - 查看 classloader 的继承树,urls,类加载信息,使用 classloader 去 getResource

类加载器的加载路径可以通过classloader –c hash值 查看
在这里插入图片描述

在这里插入图片描述

相关文章:

【JVM从入门到实战】(五)类加载器

一、什么是类加载器 类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 二、jdk8及之前的版本 类加载器分为三类: 启动类加载器-加载Ja…...

计算机毕业设计 基于Web的城市旅游网站的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来

🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. AIGC 技术的概述和发展趋势1.1 AIGC 技术的概述1.2 AIGC 技术的发展趋势 二. AIGC 与元宇…...

spring-boot-data-jpa、JPA实现分页

spring-boot-data-jpa、JPA实现分页 JPA越来越丰富了,下面使用springboot3.x实现JPA分页 通过传入PageRequest pageRequest PageRequest.of(page, size);到接口查询,返回Page拿到分页数据。 转自 https://lingkang.top/archives/jpa-shi-xian-fen-ye …...

云原生之深入解析如何在Kubernetes中快速启用Cgroup V2支持

一、cgroup v2 有哪些优势? Linux 中有两个 cgroup 版本:cgroup v1 和 cgroup v2。cgroup v2 是新一代的 cgroup API。Kubernetes 自 v1.25 起 cgroup2 特性正式 stable。cgroup v2 提供了一个具有增强资源管理能力的统一控制系统,cgroup v2…...

QT实现四则运算计算器

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setMaximumSize(240,300);this->setMinimumSize(240,300);this->setWindowTitle("计算器&…...

mysql的redolog、undo、binlog的作用

概览: MySQL三大日志包括:undolog,redo log,binlog,它们分别有以下作用: undolog:是Innodb存储引擎事务生成的日志。用于事务的回滚和MVCC,保证了事务的原子性。 redo log&#x…...

京东大数据-10月京东咖啡机市场销售数据分析-销售额增长41%,德龙等海外头部品牌店铺数据分析

如今,咖啡已经成为了人们日常生活中流行的生活饮品之一,消费量较大。随着咖啡的受众人群越来越多,消费者们对咖啡品质的要求也愈来愈高,而咖啡品质除了受咖啡豆质量影响外,还受制作过程中煮泡时间、水温和物料数量等因…...

【Android12】WindowManagerService架构分析

Android WindowManagerService架构分析 WindowManagerService(以下简称WMS) 是Android的核心服务。WMS管理所有应用程序窗口(Window)的Create、Display、Update、Destory。 因为Android系统中只有一个WMS(运行在SystemServer进程),可以称其为…...

部署LVS的NET模式

实验准备 #负载调度器# 192.168.116.40 #内网 12.0.0.100 #外网 先添加双网卡 #web服务器# 192.168.116.20 #web1 192.168.116.30 #web2 #nfs共享服务# 192.168.116.10 #nfs systemctl stop firewalld setenforce 0 1.nfs共享文件 1…...

如何在Facebook Business Manager进行企业认证

Facebook Business Manager,简称BM,按照字面意思理解就是Facebook官方的商务管理平台,是供广告主团队去使用的一个管理工具。BM可以绑定Facebook公共主页、广告账户等一系列Facebook账号。通过BM,企业就可以在一个后台&#xff0c…...

推荐一款好用的包含表格识别的OCR网站

在当今数字化的时代,文字和表格识别已经成为了许多行业的关键技术。无论是处理大量的纸质文档,还是从网络上收集数据,OCR(光学字符识别)技术都扮演着重要的角色。然而,对于许多用户来说,OCR软件…...

linux 块设备驱动程序介绍

Linux块设备驱动是Linux操作系统中用于处理块设备的设备驱动程序。块设备是指以固定大小的块单位进行访问的存储设备,例如硬盘、固态硬盘和USB存储设备等。 Linux块设备驱动负责管理块设备的读写操作,并将数据传输到相应的存储设备上。它还负责处理块设…...

知识付费小程序开发:构建个性化学习平台的技术实践

随着在线学习和知识付费的兴起,开发一款知识付费小程序成为了创新的热点之一。本文将通过使用Node.js、Express和MongoDB为例,演示如何构建一个基础的知识付费小程序后端,并实现用户认证和知识内容管理。 1. 初始化项目 首先,确…...

OpenCV极坐标变换函数warpPolar的使用

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为1702字,预计阅读4分钟 前言 前阵子在做方案时,得了几张骨钉的图片,骨科耗材批号效期管理一直是比较麻烦的,贴RFID标签成本太高,所以一般考虑还是…...

类与接口常见面试题

抽象类和接口的对比 抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。 从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。 相同点 接口和抽象类都不能实例化都位于继承的顶端…...

Windows mysql5.7 执行查询/开启/测试binlog---简易记录

前言:基于虚拟机mysql版本为5.7,增量备份测试那就要用到binlog… 简述:二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。 binlog是记录所有数据库表结构变更(例如CREATE、ALTER…...

文档安全加固:零容忍盗窃,如何有效预防重要信息外泄

文档安全保护不仅需要从源头着手,杜绝文档在使用和传播过程中产生的泄密风险,同时还需要对文档内容本身进行有效的保护。为了防范通过拷贝、截屏、拍照等手段盗窃重要文档内容信息的风险,迅软DSE加密软件提供了文档加密保护功能,能…...

前端如何设置模板参数

1.背景: 最近接到一个需求,在一个类似chatGpt的聊天工具中,要在对话框中设置模板,后端提供了很多模板参数,然后要求将后端返回的特殊字符转成按钮,编辑完成后在相应的位置拼接成字符串。 2.效果&#xff1a…...

06 使用v-model实现双向数据绑定

概述 Vue achieves two-way data binding by creating a dedicated directive that watches a data property within your Vue component. The v-model directive triggers data updates when the target data property is modified on the UI. Vue 通过创建一个专用指令来观…...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

Python环境安装与虚拟环境配置详解

本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

ubuntu清理垃圾

windows和ubuntu 双系统,ubuntu 150GB,开发用,基本不装太多软件。但是磁盘基本用完。 1、查看home目录 sudo du -h -d 1 $HOME | grep -v K 上面的命令查看$HOME一级目录大小,发现 .cache 有26GB,.local 有几个GB&am…...

【靶场】XXE-Lab xxe漏洞

前言 学习xxe漏洞,搭了个XXE-Lab的靶场 一、搭建靶场 现在需要登录,不知道用户名密码,先随便试试抓包 二、判断是否存在xxe漏洞 1.首先登录抓包 看到xml数据解析,由此判断和xxe漏洞有关,但还不确定xxe漏洞是否存在。 2.尝试xxe 漏洞 判断是否存在xxe漏洞 A.send to …...

大语言模型解析

1. Input Embedding embedding:将自然语言翻译成index 每个index对应一个embedding,embedding需要训练,embedding是一个数组...