如何进行classLoader卸载与JVM热部署
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了如何进行classLoader卸载与JVM热部署,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。classLoader的卸载机制jvm中没有
千家信息网最后更新 2026年11月01日如何进行classLoader卸载与JVM热部署
本篇文章为大家展示了如何进行classLoader卸载与JVM热部署,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
classLoader的卸载机制
jvm中没有提供class及classloader的unload方法.那热部署及osgi中是通过什么机制来实现的呢?实现思路主要是通过更换classLoader进行重新加载.之前的classloader及加载的class类在没有实例引用的情况下,在perm区gc的情况下会被回收掉。
perm区gc时回收掉没有引用的class是一个怎样的过程呢?
◆ perm区达到回收条件后,对class进行引用计算,对于没有引用的class进行回收。
◆ classLoader实例什么时候被回收呢?(很有可能会进入old gen).perm区回收一般情况下触发full gc是否目的就是清除没有实例引用此classloader?
内存问题
◆ 如果有实例类有对classloader的引用,perm区class将无法卸载,导致perm区内存一直增加,进而导致perm space error
public static Map pool = new HashMap(); public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{ for (int i=0;i<10000000;i++){ test(args); } } public static void test(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { ClassLoader cl = new MyLoader(Main.class.getClassLoader()); String className = "RealPerson"; @SuppressWarnings("unchecked") Class clazz = (Class) cl.loadClass(className); Person p = clazz.newInstance(); p.setName("qiang"); pool.put(System.nanoTime(), p); cl = p.getClass().getClassLoader(); } 推测:
osgi的bundle进行热部署时有个条件:export class 必须是兼容的.否则需要重启整个应用才会生效,为什么呢?
osgi的export class是被bundle的parent classloader加载的,bundle内部其他类是bundle的classloader加载的,bundle更换后,重新创建classloader,并对bundle进行加载,之前的加载靠jmv gc回收掉。
那osgi 中explort class如果有实例引用的话,是否会导致class无法被gc掉?
如果osgi中没有做过处理,应该会出现此问题.具体osgi的实现还需要深入研究下,也许osgi中关于此部分的实现使用了jvm内部的JMTI的相关接口,来对内存的引用关系进行了修改。
上述内容就是如何进行classLoader卸载与JVM热部署,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
实例
情况
内存
内容
就是
技能
机制
条件
知识
问题
简明
简明扼要
对内
思路
接口
文章
方法
时候
更多
目的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技有限公司
互联网是第几次科技革命的成果
科技服务与互联网
亿账通互联网科技
菲比寻常互联网科技
多迪互联网科技有限公司
甘肃拓世互联网科技有限公司
互联网 科技馆
银川新华互联网科技学校地址
全球顶尖互联网科技公司
赶超互联网科技 微信多开
乌鲁木齐新华智原互联网科技学校
互联网金融科技名词解释
雨阳互联网卡科技有限公司
宇信科技在杭州互联网排第几
互联网科技融合创新
吉林省码上互联网科技电话
北京军民互联网科技公司
10位科技互联网大佬
中国主要互联网科技公司
北京互联网科技有限公司
易互联网科技有限公司
互联网 卓越科技
深圳卡尔迅互联网科技有限公司怎么样
互联网时代的科技公司
智帮互联网科技公司最近动向
济南小医互联网科技有限公司招聘
上海万顺科技互联网有限公司招聘
互联网金融运营模式中的金融科技
互联网科技大佬云集