您的位置:首页 > 编程语言 > Java开发

【Java常用类库】_Runtime类

2013-01-22 14:43 459 查看
【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() ;    // 结束此进程
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: