Runtime类

Runtime类

不能使用new创建对象,只能通过Runtime.getRuntime()方法获取实例

要写throws Exception或try catch

public static void main(String[] args) throws Exception{
    Runtime r1=Runtime.getRuntime();
    r1.exec("C:\\Program Files\\Bandizip\\Bandizip.exe");
    //写上路径会直接打开对应软件
    Runtime r2=Runtime.getRuntime();
    r2.exec("notepad");
}

exec会返回process对象,常用方法如下

方法 功能描述
destroy() 结束进程
getErrorStream() 获取进程的错误流
getInputStream() 获取进程的输入流
getOutputStream() 获取进程的输出流

destroy()的使用方法

public static void main(String[] args) throws Exception{
        Runtime r=Runtime.getRuntime();
        Process p=r.exec("notepad");
        Thread.sleep(5000);//以毫秒为单位,在5秒后会关掉打开的进程
        p.destroy();
        //process中的destroy是结束进程的方法,直接写会直接关掉,看不到
        //为了区分,就写Thread.sleep();来延迟关闭
    }

查看内存

totalMemory():返回java虚拟机中的内存总量

freeMemory():返回java虚拟机中的空闲内存总量

Runtime r=Runtime.getRuntime();//获取本地Runtime对象
Integer ints[]=new Integer[100];//初始长度为100的数组
long before=r.freeMemory();     //获取当前空闲内存数
System.out.println("赋值前的空闲内存字节数:"+before);
for (int i = 0; i < ints.length; i++) {
    ints[i]=i;                  //循环为数组赋值
}
long after=r.freeMemory();      //获取赋值之后空闲内存数
System.out.println("赋值后的空闲内存字节数:"+after);
System.out.println("数组用掉的内存字节数:"+(before-after));

?

如果初始长度为10000(不止10000)的数组,输出数组用掉的字节数是0

posted @ 2021-11-07 22:56  valder-  阅读(48)  评论(0)    收藏  举报