java 怎样卸载一个类_Java 动态卸载类[通俗易懂]

java 怎样卸载一个类_Java 动态卸载类[通俗易懂]通过反射,我们可以动态的将类加载到方法区中,但是卸载这个类,却有着比较严苛的条件1.该类所有的实例都已经被GC,也就是JVM中不存在该Class的任何实例。2.加载该类的ClassLoader已经被GC。3.该类的java.lang.Class对象没有在任何地方被引用,如不能在任何地方通过反射访问该类的方法.publicstaticvoidmain(String[]args)th…

大家好,又见面了,我是你们的朋友全栈君。

通过反射,我们可以动态的将类加载到方法区中,但是卸载这个类,却有着比较严苛的条件

1. 该类所有的实例都已经被GC,也就是JVM中不存在该Class的任何实例。

2. 加载该类的ClassLoader已经被GC。

3. 该类的java.lang.Class 对象没有在任何地方被引用,如不能在任何地方通过反射访问该类的方法.

public static void main(String[] args) throws InterruptedException {

// 等待两秒,让系统加载完所有的类

Thread.sleep(2000);

try {

System.out.println(“Loading…”);

// 利用反射,加载ComplexClass类

URLClassLoader loader = new URLClassLoader(new URL[]{new URL(“file:/Users/wuchen/Desktop/”)});

loader.loadClass(“com.company.wuchen.demo.ComplexClass”);

// 将加载这个类的URLClassLoader的引用置为null,以便让这个类释放

loader = null;

// 启动垃圾回收(JVM虚拟机规范中明确说明,这个方法并不能保证垃圾回收一定执行,但是在此处的确有执行)

System.gc();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

在虚拟机的参数上添加-XX:+TraceClassLoading -XX:+TraceClassUnloading,这两个参数告诉虚拟机,需要打印出加载和卸载类的信息,实际运行的结果如下

0818b9ca8b590ca3270a3433284dd417.png

这个类先是被加载,然后被卸载了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144678.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 改写String类别

    改写String类别

    2022年1月5日
    37
  • python灰度图生成g代码_artcam pro 通过灰度图生成G代码详细图文教程

    python灰度图生成g代码_artcam pro 通过灰度图生成G代码详细图文教程本文是使用artcampro把灰度图转成G代码,看到喜欢的雕刻,可以自己先做成灰度图,然后转换成G代码,今天特地做了一个教程,仅供刚刚接触者使用!新手可以看看,老手请高抬贵手,不要嘲笑。自己技术有限,将就看吧!希望对大家有用!灰度图生成G代码详细图文教程如下:1、先找一张灰度图:2、打开软件,点“文件”–“新的”–“通过图像文件”,找到刚才自己打开的灰度图,双击图片就可以了。3、设置雕刻尺…

    2022年6月20日
    48
  • 移动端app开发流程分析「建议收藏」

    移动端app开发流程分析「建议收藏」随着信息技术的不断发展,互联网早已经向移动互联网过渡,而智能手机正在逐步取代桌面电脑的地位,手机APP成为人们获取各类信息、服务的强大渠道。在移动互联网时代,每个企业都希望能够分享流量红利,从而让自己的企业发展的更好。选择一款适合自己的手机APP成为每个企业都在思考的问题。对于大部分的企业,尤其是餐饮、旅游、教育、美容美发、医美、健身、建筑、房地产等传统行业来讲,因为这部分企业主并不是从事互联…

    2022年6月16日
    44
  • 下载怪兽模板(TemplateMonster)的方法「建议收藏」

    下载怪兽模板(TemplateMonster)的方法「建议收藏」提到Flash网站模板,就不得不提起“怪兽模板(TemplateMonster)”这个品牌,TM的每件作品都堪称佳作,他们不仅在创作,更是在引领时代潮流,可以说,TM的作品是每

    2022年7月1日
    41
  • 海尔楼宇可视对讲

    海尔楼宇可视对讲海尔楼宇可视对讲我公司是青岛海尔集团内的智能化产品生产企业。生产楼宇可视对讲等智能化设备,以海尔的品质为您的楼盘提升价值。 室内分机分类序号类型图片显示屏安装方式主要功能1黑白可视对讲分机HR-Q100AV 4寸黑白CRT壁挂式安装★免提通

    2022年6月22日
    32
  • Windows中如何查看日志(如查看远程登陆的IP地址)以及常用日志ID

    Windows中如何查看日志(如查看远程登陆的IP地址)以及常用日志ID【时间】2018.12.12【题目】Windows中如何查看日志(如查看远程登陆的IP地址)以及常用日志ID概述在Windows中可以使用事件查看器来查看相关日志,并结合日志ID进行日志筛选。常见的日志有: 4634-帐户被注销   4647-用户发起注销   4624-帐户已成功登录(可以查看   4625-帐户登…

    2022年5月14日
    400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号