1.1 认识Runtime类
Runtime:运行时,是一个封装了JVM进程的类,每一个java程序实际上都是启动了一个JVM进程,那么每个JVM进程都是对应这一个Runtime实例,此实例是由JVM为其实例化的。
public class Runtimeextends Object每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例。
1.2 本类的定义中根本就没有构造方法,本类的构造公共被私有化了。则在此类中肯定有一个方法可以返回该类的实例化对象。
public static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。Runtime 类的大多数方法是实例方法,并且必须根据当前的运行时对象对其进行调用。
返回:
与当前 Java 应用程序相关的 Runtime 对象。
--------------------------------------------------------------------------------
得到JVM信息
实例:
public class RunTimeDemo01
{
public static void main(String args[]){
Runtime run = Runtime.getRuntime();
System.out.println("JVM最大内存:"+run.maxMemory());
System.out.println("JVM空闲内存:"+run.freeMemory());
}
}
结果:
F:\java>javac RunTimeDemo01.java
F:\java>java RunTimeDemo01
JVM最大内存:259522560
JVM空闲内存:15932104
1.3 释放内存 run.gc()
public class RunTimeDemo01
{
public static void main(String args[]){
Runtime run = Runtime.getRuntime();
String str = "hahei"+"dd"+"sggh";
System.out.println("JVM最大内存:"+run.maxMemory());
System.out.println("操作之前JVM空闲内存:"+run.freeMemory());
for(int i = 0;i < 100;i++){
str += i;
}
System.out.println("JVM最大内存:"+run.maxMemory());
System.out.println("操作之后JVM空闲内存:"+run.freeMemory());
run.gc();
System.out.println("free之后"+run.freeMemory());
}
}
结果:
F:\java>javac RunTimeDemo01.java
F:\java>java RunTimeDemo01
JVM最大内存:259522560
操作之前JVM空闲内存:15932176
JVM最大内存:259522560
操作之后JVM空闲内存:15841496
free之后16045904
1.4 Runtime类与Process类
除了观察内存使用量之外,也可以直接使用Runtime类运行本机的可执行程序,例如,调用记事本
public Process exec(String command)
throws IOException在单独的进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command) 形式的调用而言,其行为与调用 exec(command, null, null) 完全相同。
参数:
command - 一条指定的系统命令。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null
IllegalArgumentException - 如果 command 为空
实例: