Runtime类,Process类

认识Runtime类

Runtime类表示运行时操作类, 是一个封装了JVM进程的类,每一个JVM对应着一个Runtime类的实例,此实例由JVM运行时为其实例化。
因为Runtime类本身构造方法是私有化的(单例设计),如果想取得一个Runtime实例:
这种形式

Runtime run=Runtime.getRuntime();

在这里插入图片描述

得到JVM的内存空间信息

使用Runtime类可以取得JVM中的内存信息,最大内存空间,空闲内存空间等。

public class RuntimeDemo1 {
    public static void main(String[] args) {
        //通过Runtime类的静态方法实例化操作
        Runtime runtime=Runtime.getRuntime();
        //观察最大的内存,
        System.out.println("JVM最大内存量:"+runtime.maxMemory());
        //取得程序运行空闲内存
        System.out.println("JVM空闲内存量:"+runtime.freeMemory());

        String string="hello"+"world"+"!!"+"!!";
        System.out.println(string);
        for (int i=0;i<1000;i++){
            //循环修改内容,使产生多个垃圾
            string+=i;
        }
        System.out.println("String操作后,JVM空闲内存量"+runtime.freeMemory());
        //垃圾操作后,释放空间
        runtime.gc();
        System.out.println("垃圾回收之后,JVM空闲内存量"+runtime.freeMemory());
    }
}

通过for循环修改了String的内容, 操作产生大量垃圾,占用系统内存区域,计算后发现JVM 的内存量减少,当执行gc()方法进行垃圾收集后,可用的空间就变大了。
输出结果:

JVM最大内存量:1877475328
JVM空闲内存量:124193088
helloworld!!!!
String操作后,JVM空闲内存量112091480
垃圾回收之后,JVM空闲内存量125499720

Runtime与Process

范例:让记事本进程运行5s后消失

public class RuntimeDemo2 {
    public static void main(String[] args) throws Exception {
        //取得Runtime实例化对象
        Runtime runtime=Runtime.getRuntime();
        //定义进程变量
        Process process=null;
        //调用本机程序并throws异常
        process=runtime.exec("notepad.exe");
        //此线程存活5s
        Thread.sleep(5000);
        //结束此进程
        process.destroy();
    }
}

直接控制Process()方法进行系统进程的控制。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值