1.Runtime类封装了运行时环境。用户一般不实例化一个Runtime对象,但是可以通过调用静态方法Runtime.getRuntime()来获得对当前Runtime对象的引用。一旦获得了对当前对象的引用,就可以调用几个控制Java虚拟机的状态和行为的方法。
package test;
public class RuntimeTest {
/**
* @param args
*/
public static void main(String[] args) {
Runtime r = Runtime.getRuntime(); //得到当前的Runtime对象
long mem1,mem2;
Integer someints[] = new Integer[1000];
//可用总内存,不是计算机的总内存,而是JVM可用总内存
System.out.println("Total memory is:"+r.totalMemory());
//空闲空间
mem1 = r.freeMemory();
System.out.println("inital free memory:"+mem1);
r.gc();
//垃圾收集后的空闲内存
mem1 = r.freeMemory();
System.out.println("free memory after garbege collection:"+mem1);
//进行内存分配
for(int i=0;i<1000;i++){
someints[i] = new Integer(i);
}
//分配后的可用空闲内存
mem2 = r.freeMemory();
System.out.println("Free memory after allocation:"+mem2);
//占用内存
System.out.println("memory used by allocation:"+(mem1-mem2));
//释放对象
for(int i=0;i<1000;i++){
someints[i] = null;
}
r.gc();
mem2=r.freeMemory();
System.out.println("Free memory after collecting discarded Integers:"+mem2);
}
}
2.使用exec()方法装入Windows的简单文本编辑器
package test;
import java.io.IOException;
public class RuntimeExec {
//使用exec()方法装入Windows的简单文本编辑器
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
Process p = null;
try {
p=r.exec("notepad");
//程序暂停5秒钟
Thread.sleep(5000);
//关闭外部程序
p.destroy();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Error executing notepad");
}
}
}