【Java常用类库】_Runtime类

【Java常用类库】_Runtime类

本章目标:
了解Runtime类
使用Runtime类取得JVM的空间信息
Runtime类与Process类

3.具体内容
3.1认识Runtime类

每一个JVM进程都是对应一个Runtime实例。

Runtime类的构造方法被私有化了,则在此类中肯定有一个方法可以返回本类的实例化对象。

public static Runtime getRuntime();


Runtime类的常用方法

No.    方法定义                类型        描述
1    public static Runtime getRuntime    普通        取得Runtime类的实例
2    public long freeMemory()        普通        返回Java虚拟机中的空闲内存量
3    public long maxMemory()            普通        返回JVM的最大内存量
4    public void gc()            普通        运行垃圾回收器,释放空间
5    public Process exec(String command)    普通        执行本机命令
    throws IOException

3.2、得到JVM信息

public class RuntimeDemo01{
    public static void main(String args[]){
        Runtime run = Runtime.getRuntime();    // 通过Runtime类的静态方法进行实例化操作
        System.out.println("JVM最大内存量:" + run.maxMemory()) ;    // 观察最大的内存,根据机器的不同,环境也会有所不同
        System.out.println("JVM空闲内存量:" + run.freeMemory()) ;    // 取得程序运行的空闲内存
        String str = "Hello " + "World" + "!!!"
                +"\t" + "Welcome " + "To " + "MLDN" + "~" ;
        System.out.println(str) ;
        for(int x=0;x<1000;x++){
            str += x ;            // 循环修改内容,会产生多个垃圾
        }
        System.out.println("操作String之后的,JVM空闲内存量:" + run.freeMemory()) ;
        run.gc() ;        // 进行垃圾收集,释放空间
        System.out.println("垃圾回收之后的,JVM空闲内存量:" + run.freeMemory()) ;
    }
};



3.3、Runtime与Process类
除了观察内存使用量之外,也可以直接使用Runtime运行本机程序,例如,调用记事本

public Process exec(String command) throws IOException

public class RuntimeDemo02{
    public static void main(String args[]){
        Runtime run = Runtime.getRuntime() ;    // 取得Runtime类的实例化对象
        try{
            run.exec("notepad.exe") ;    // 调用本机程序,此方法需要异常处理
        }catch(Exception e){
            e.printStackTrace() ;    // 打印异常信息
            // System.out.println(e) ;
        }
    }
};



exec()方法的返回值是Process,表示一个进程的操作类,可以通过destroy()方法销毁掉一个进程。

public class RuntimeDemo03{
    public static void main(String args[]){
        Runtime run = Runtime.getRuntime() ;    // 取得Runtime类的实例化对象
        Process p = null ;    // 定义进程变量
        try{
            p = run.exec("notepad.exe") ;    // 调用本机程序,此方法需要异常处理
        }catch(Exception e){
            e.printStackTrace() ;    // 打印异常信息
            // System.out.println(e) ;
        }
        try{
            Thread.sleep(5000) ;    // 让此线程存活5秒
        }catch(Exception e){
        }
        p.destroy() ;    // 结束此进程
    }
};



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值