【Java常用类库】_Runtime类

来源:互联网 发布:软件项目管理软件书籍 编辑:程序博客网 时间:2024/06/09 15:59
【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() ;    // 结束此进程    }};



原创粉丝点击