classloader基础

一看你就懂,超详细java中的ClassLoader详解 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的... 阅读详情

JVM启动,会形成3个类加载器组成的初始化加载器层次结构:
bootstap classloader (加载核心类)
        ||
extension classloader(加载ext(目录),即java.ext.dirs())
        ||
system classloader   (加载-classpath或者java.class.path或者CLASSPATH)


ClassLoader机制:
a)全盘负责:一个classloader加载一个class后,这个class所引用或者依赖的类也由这个classloader载入,除非显示的用另一个classloader载入
b)委托机制:先由父加载器加载,除非父加载器找不到时才从自己的类路径中去寻找
c)Cache机制:classloader采用缓存机制,即先查cache;若cache中保存了这个class就直接返回;若无,才从文件读取和转化为class并放入cache

 

ClassLoader加载类顺序:
1)检查cache是否有该类:
    11)若有直接返回
    12)若无,请求父类加载
        121) 若无父,则从bootstap classloader加载
2)加载:
    21)寻找class文件(丛与此classloader相关的类路径中寻找)
    22)从文件载入class
    23)找不到则抛出ClassNotFoundeException
3)扩展:
    记载时即2),覆写findClass可以实现自己的载入策略
    记载时即2),覆写loadClass来实现自己的载入过程


如何实现运行时动态载入与更新
本质:只要动态改类搜索路径和清除classloader的cache已载入的class就ok
做法:
1)继承ClassLoader:覆写loadClass方法,动态寻找class文件
2)只要重新使用一个新的类搜索路径来new一个classloader就可以,这样既更新了类的搜索路径以便来载入新的class,也更新生成了一个空白的cache


classloader载入的方式
1)Pre-loading 预先载入,载入基础类
2)load-on-demand 按需求载入


JDK为啥有两个JRE?
JDK中jre是运行java本身的程序,如javac
ProgramFile(默认安装)中jre是运行用户编写的java程序

 
大模型训练流程(四):PPO强化学习实战与调优指南 本文详细解析了大模型训练中PPO强化学习的实战应用与调优技巧,涵盖RLHF核心原理、PPO算法实现及显存优化策略。通过具体案例和代码示例,指导开发者有效提升模型回答质量与安全性,避免常见训练陷阱。 阅读详情

相关推荐

Pandas实战指南:从数据结构到清洗聚合的完整解析

在数据分析工作中,表格数据处理是最常见的需求,无论是电商运营还是量化交易,都离不开对结构化数据的清洗与转换。Python生态中,Pandas凭借Series与DataFrame两种核心数据结构,将数据标签与数值绑定,实现自动对齐,极大简化了数据操作流程。它不仅是数据清洗的利器,也是分组聚合、透视表分析和时间序列处理的基础工具。掌握Pandas,意味着能够高效完成从数据读取、缺失值处理、类型转换到分组统计的完整分析流水线,将重复性报表工作自动化。本文基于实际使用经验,系统梳理Pandas的核心概念、常用操作、

weixin_30768881的博客 258

ClassLoader专题(一):ClassLoader基础

ClassLoader 专题(一): ClassLoader ...

cuiyi's blog(崔毅 crazycy) 186

在 CentOS7 下安装 Cadence IC验证平台 INCISIVE152

前言 本文所使用的软件 虚拟机软件:VMware Workstation 15 PRO 如何安装? 操作系统:CentOS-7, CentOS-7-x86_64-DVD-1810.iso 如何安装? 简介 INCISIVE Incisive是nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,用于仿真和验证。 InstallScape InstallSc...

沈醉不知的博客 2万+

由osgi引出的classLoader的大总结(整理理解ClassLoader)

转载请注明出处(corey)最近在研究osgi,在osgi里面里面有个很重要的东西,就是ClassLoader,所以,在网上搜集了一些资料,整理一下,并加入了自己的一些理解;(1)jvm的装载过程以及装载原理所谓装载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程,其中类或接口的名称是给定了的。当然名称也可以通过计算得到,但是更常见的

浮白 1万+

PCB之AD层次化原理图设计

PCB之AD层次化(模块化)原理图设计 软件版本:AD17.1.9(bBuild 592) 先上效果图: 可以看到,图中有RS485和W5500这两个部分是复用了原理图,当项目中需要多个功能相同的电路时,这种设计就可以大大节约PCB布局布线的时间,方法后面介绍; 1.首先确定好项目中个部分电路的功能模块 不同功能的电路分开不同原理图画,然后给出输入输出端口,这样方便复用,下面是实例项目的功能划分 2.单个模块电路的接口设计 这里以W5500以太网接口电路为例说明: 主要就分为通讯接口和电源接口:

洋洋洋的博客 3万+

同花顺PC端逆向解析:Hook注入与加密破解实战指南

在Windows客户端数据采集场景中,当常规HTTP爬虫失效时,内存级逆向分析成为获取实时行情数据的关键路径。其核心涉及进程注入、运行时解密、反调试绕过等底层技术,本质是理解PE加载机制、函数调用约定与内存保护策略的协同过程。同花顺作为典型加固客户端,采用ASPack加壳+自研解密+多线程校验三重防护,迫使开发者转向APC注入、动态密钥提取与XXTEA算法复刻等高阶手段。本文聚焦于DLL注入选型依据、解密函数定位方法及二进制Blob结构化解析,最终实现从内存读取到Pandas DataFrame的端到端数据

weixin_32234493的博客 1195

如何加载class文件

上一篇ClassLoader的基础知识中提到,类加载器第一个作用就是加载Class到JVM中,其实就是加载jar文件中的.class文件和javac编译.java生成的.class文件。ClassLoader加载一个class文件到JVM时需要经过以下几个步骤:    1.找到.class文件并把这个文件包含的字节码加载到内存中。    2.第二个阶段分为三个步骤,分别是字节码验证、Class类数...

xiaodaojiang的博客 1878

软件工程案例教程·韩万江【课后习题】

!!!!

weixin_57858263的博客 6419

关于Class类类型、反射机制及涉及ClassLoader的基础理解

最近在疯狂补习张波老师的java基础,感觉整体讲的很透彻,但可能是本人基础较差,所以一些细节在此罗列出来与大家分享借鉴,同时也作为一份学习笔记记录。 package com.lyx; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationT...

p414897821的博客 281

Ubutntu下使用realsense d435i(二):获取某二维像素点的三维坐标

00 准备工作 准备工作包括安装驱动以及pyrealsense2,具体可参考上一篇: Ubutntu下使用realsense d435i(一):准备工作以及安装pyrealsense2 https://blog.youkuaiyun.com/gyxx1998/article/details/121461293 01 通过二维像素点获得物体三维坐标 这个在上一篇已经介绍了代码: realsense d435i获取某像素点三维坐标(计算深度和点云两种方法) https://blog.youkuaiyun.com/gyxx1998/

gyxx1998的博客 9943

更改训练好的yolo模型中的class类名,无需重新训练

本文介绍了如何在不重新训练YOLO模型的情况下修改其类名的技巧。关键点在于理解YOLO类名存储逻辑:类名列表(names)存储在配置文件中(.yaml),而非权重文件(.pt)。通过修改配置文件的类名列表(保持类别数量nc不变),即可实现类名更新。具体步骤包括:1)准备修改后的配置文件;2)加载模型并更新类名;3)验证推理结果。该方法适用于YOLOv5/YOLOv8等版本,能有效节省开发时间,适用于类名表述调整、多场景复用等需求。注意:增减类别需重新训练,仅修改类名时需确保类别数量一致。

yolo模型训练找我,AI游戏合作找我 880

Java ClassLoader基础及加载不同依赖 Jar 中的公共类

本文主要介绍 ClassLoader 的基础知识,ClassLoader 如何动态加载 Jar,ClassLoader 隔离问题及如何加载不同 Jar 中的公共类。   本文工程开源地址见:Java Dynamic Load Jar@Github,Clone 以后直接以 Java Application去运行 java-dynamic-loader-host 工程即可。 其实本文

lijiane20541458的博客 305

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 385

Java Classloader基础

背景最近在引入一款开源项目投产时,在生产环境出现了一个ClassNotFoundException,仔细看完异常信息后才发现其产生于一个NullPointerException。SomeClass.getClassLoader().getParent(); // => null奇怪在于,测试环境并未出现过这个异常,生产环境却有。最后经过对比,发现两个环境启动脚本上的差异。# 存在NullPointe

xh 474

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ClassLoader的基础详解

java应用环境中不同的class分别由不同的ClassLoader负责加载。 一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职: Bootstrap ClassLoader 负责加载java基础类,主要是 %JRE_HOME/lib/ 目录下的rt.jar...

墨尔本,晴 140

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JAVA基础 - 如何使用ClassLoader?

ClassLoader,类加载器。用于将CLASS文件动态加载到JVM中去,是所有类加载器的基类(Bootstrap ClassLoader不继承自ClassLoader),所有继承自抽象的ClassLoader的加载器,都会优先判断是否被父类加载器加载过,防止多次加载。

记录并分享 1389

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Classloader 基础

什么是ClassLoaderClassLoader是一个抽象类,我们用它的实例对象来装载类,它负责将 Java 字节码装载到 JVM 中, 并使其成为 JVM 一部分。 JVM 的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块,而不影响系统其他功能模块的正常运行。一般是通过类名读入一个class文件来装载这个类,(其它加载形式暂时没有研究过)。ClassLoader装载过

Jamesz' Blog 887

java类classloader_ClassLoader专题(一):ClassLoader基础

JVM启动,会形成3个类加载器组成的初始化加载器层次结构:bootstap classloader (加载核心类)||extension classloader(加载ext(目录),即java.ext.dirs())||system classloader (加载-classpath或者java.class.path或者CLASSPATH)ClassLoader机制:a)全盘负责:一个clas...

weixin_30415591的博客 211

【java 基础】闲话 ClassLoader 和 SPI

闲话 classloader 和 SPI

大胡子老哥的博客 1149

Java Classloader基础及应用介绍

文章目录一 what's Classloader(CL)二 内置CL2.1 Bootstrap CL2.2 ExtCL(ExtClassloader)2.3 本篇系统介绍class loader 及其应用.以下 使用 CL (classloader) 来简写. 一 what’s Classloader(CL) 笔者以为,在讨论计算机(编程) 中的概念时首先一定要确定 概念所在的维度(范畴)是什么,否则会发现,大家说的貌似都对, 但哪里总有点不对. 当我们说 Java Classloader时,我们要搞清楚是

qq_30118563的博客 1007

Java ClassLoader 基础

基本概念:Java Classloader(类装载器):JRE的一个模块,用于装载Java类到JVM。JRE加载一个类到JVM需要以下基本步骤:装载:查找并导入class文件,如String.class;链接:校验、准备、解析,其中解析步骤是可以选择的,由使用目的决定;校验:检查载入class文件数据的正确性,因为某些class文件可能是利用工具生成,而非使用Java编译...

weixin_33890526的博客 74
上一篇: JfreeChart API浏览
下一篇: When should I use Thread.getContextClassLoader()?
QJC13
博客等级 码龄19年 9粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值