📅  最后修改于: 2020-09-27 01:32:37             🧑  作者: Mango
Java Runtime类用于与Java运行时环境进行交互。 Java Runtime类提供了用于执行进程,调用GC,获取总内存和可用内存等的方法。java.lang.Runtime类只有一个实例可用于一个Java应用程序。
Runtime.getRuntime()方法返回Runtime类的单例实例。
No. | Method | Description |
---|---|---|
1) | public static Runtime getRuntime() | returns the instance of Runtime class. |
2) | public void exit(int status) | terminates the current virtual machine. |
3) | public void addShutdownHook(Thread hook) | registers new hook thread. |
4) | public Process exec(String command)throws IOException | executes given command in a separate process. |
5) | public int availableProcessors() | returns no. of available processors. |
6) | public long freeMemory() | returns amount of free memory in JVM. |
7) | public long totalMemory() | returns amount of total memory in JVM. |
public class Runtime1{
public static void main(String args[])throws Exception{
Runtime.getRuntime().exec("notepad");//will open a new notepad
}
}
您可以使用shutdown -s命令关闭系统。对于Windows OS,您需要提供关闭命令的完整路径,例如c:\\ Windows \\ System32 \\ shutdown。
在这里,您可以使用-s开关关闭系统,-r开关重新启动系统,以及-t开关指定时间延迟。
public class Runtime2{
public static void main(String args[])throws Exception{
Runtime.getRuntime().exec("shutdown -s -t 0");
}
}
public class Runtime2{
public static void main(String args[])throws Exception{
Runtime.getRuntime().exec("c:\\Windows\\System32\\shutdown -s -t 0");
}
}
public class Runtime3{
public static void main(String args[])throws Exception{
Runtime.getRuntime().exec("shutdown -r -t 0");
}
}
public class Runtime4{
public static void main(String args[])throws Exception{
System.out.println(Runtime.getRuntime().availableProcessors());
}
}
在给定的程序中,创建10000个实例后,可用内存将小于以前的可用内存。但是在gc()调用之后,您将获得更多的可用内存。
public class MemoryTest{
public static void main(String args[])throws Exception{
Runtime r=Runtime.getRuntime();
System.out.println("Total Memory: "+r.totalMemory());
System.out.println("Free Memory: "+r.freeMemory());
for(int i=0;i<10000;i++){
new MemoryTest();
}
System.out.println("After creating 10000 instance, Free Memory: "+r.freeMemory());
System.gc();
System.out.println("After gc(), Free Memory: "+r.freeMemory());
}
}
Total Memory: 100139008
Free Memory: 99474824
After creating 10000 instance, Free Memory: 99310552
After gc(), Free Memory: 100182832