在每一个JVM进程中都会存在一个Runtime类,这个类的主要功能是取得一些与运行时有关的环境属性或创建进程等操作。
在Runtime类定义的时候,它的构造方法就已经被私有化了,属于单例设计模式;只有唯一的一个Runtime类的对象,所以在Runtime类里面提供了一个static型方法,这个方法可以取得Runtime的实例对象。
public long totalMemory() ;
public long maxMemory() ;
public long freeMemory() ;
public class TestDemo {
public static void main(String [] args) {
Runtime run = Runtime.getRuntime() ; //取得Runtime类的实例化对象
System.out.println("MAX =" + run.maxMemory()) ;
System.out.println("TOTAL =" + run.totalMemory()) ;
System.out.println("FREE =" + run.freeMemory()) ;
}
}
// 运行结果:
MAX =933232640
TOTAL =58720256
FREE =56327376
public class TestDemo {
public static void main(String [] args) {
Runtime run = Runtime.getRuntime() ; //取得Runtime类的实例化对象
System.out.println("MAX =" + run.maxMemory()) ;
System.out.println("TOTAL =" + run.totalMemory()) ;
System.out.println("FREE =" + run.freeMemory()) ;
System.out.println("==============================");
String str = "" ;
for (int i = 0; i < 22222 ; i++) {
str += i ; //制造垃圾
}
System.out.println("MAX =" + run.maxMemory()) ;
System.out.println("TOTAL =" + run.totalMemory()) ;
System.out.println("FREE =" + run.freeMemory()) ;
System.out.println("==============================");
run.gc(); // gc()方法,释放内存中的垃圾
System.out.println("MAX =" + run.maxMemory()) ;
System.out.println("TOTAL =" + run.totalMemory()) ;
System.out.println("FREE =" + run.freeMemory()) ;
System.out.println("==============================");
}
}
// 运行结果:
==============================
MAX =933232640
TOTAL =58720256
FREE =56327416
==============================
MAX =933232640
TOTAL =381681664
FREE =157595056
==============================
MAX =933232640
TOTAL =8388608
FREE =7307560
==============================
Runtime类有一个功能,可以调用本机的可执行程序并创建一个进程
public Process exec (String command) throws IOException ;
import java.io.IOException;
public class TestDemo {
public static void main(String [] args) throws IOException {
Runtime run = Runtime.getRuntime();
Process pro = run.exec("mspaint.exe"); //调用本机可执行程序(画板)
System.out.println(pro);
// pro是exec执行后返回的一个进程ID信息
Thread.sleep(20000); // 延迟 20000 ms
pro.destroy(); // 销毁进程
}
}
// 执行结果:
Process[pid=6832, exitValue="not exited"]
Process() 是一个进程的创建方法,exec()执行后,会返回进行信息,由进程方法Process接收为 pro ,故 pro 可以处理进程。