【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() ; // 结束此进程
}
};