java中如何把jvm已经加载了的类去除掉?

 我来答
吉他man0
2014-05-08 · 超过27用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:41万
展开全部
jvm要去掉已经加载的类,也就是类的卸载时通过垃圾回收器来进行的,但是类的卸载的条件是十分苛刻的,不像对象的回收那么频繁(年轻代中的小规模回收频繁的进行,老年代中的full gc也会时不时的进行),而类的卸载虽然也由gc完成,但是频率十分低。
追问

看不大懂  请简单的会带下我下面两个问题:

  1. 已经加载的类能不能从jvm手工卸载掉,如果可以怎么做?

  2. 如果jvm不能手工卸载已经加载了的类,那么如何实现热加载?

追答
不能手工(也就是我们的程序)做的,据我所知java中没有这个api(可能是我没有达到这种知识面吧),所谓热技术(HotSwap)是HotSpot虚拟机的一个特点,是在不停止虚拟机的情况下更新已经加载的类。这个东西是用在Btrace(jdk自带的一个虚拟机监控工具中),用来监控和debug用的,我想oracel也不会在API中提供的,因为API的东西都是开源的,这个技术要是开源的话是不是就会被别的商业虚拟机看去了呢?我这么认为····
198901245631
2015-06-27 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1736万
展开全部
这个当前没有方法通过代码实现去除单个类(除非删除不用的类),来减少代码冗余。

解释:不想加载的类,那直接从项目中删除,之后再运行即可,这样就不会加载了,否则只要项目中有这个类,并且属于编译路径所包含的位置,都是会被jvm加载的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Why_明天见
2014-05-08 · TA获得超过246个赞
知道小有建树答主
回答量:822
采纳率:75%
帮助的人:179万
展开全部
你的意思是去掉项目中的jar包吗。
追问
不是啊 我是想要卸载掉虚拟机中已经加载过的类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式