您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第11章:Java常用类库】_Runtime类
发布时间:2020-12-23 15:44:22编辑:雪饮阅读()
Runtime
Runtime类是java运行时的类,没有构造方法。
Runtime类提供maxMemory方法用于获取JVM最大内存,Runtime类提供freeMemory方法用于获取JVM目前的空闲内存。
用这两个方法可以对String频繁操作对性能的损耗来验证下
public class Hello{
public static void main(String args[]){
Runtime run=Runtime.getRuntime();
String str="";
for(int x=0;x<10;x++){
System.out.println(x);
}
System.out.println("JVM最大内存:"+run.maxMemory());
System.out.println("JVM空闲内存:"+run.freeMemory());
}
}
D:\>javac Hello.java
D:\>java Hello
0
1
2
3
4
5
6
7
8
9
JVM最大内存:66650112
JVM空闲内存:4955312
gc
Runtime的gc方法用于回收JVM中程序运行所产生的垃圾(内存)
public class Hello{
public static void main(String args[]){
Runtime run=Runtime.getRuntime();
String str="";
for(int x=0;x<10;x++){
System.out.print(x);
}
System.out.println();
System.out.println("JVM最大内存:"+run.maxMemory());
System.out.println("JVM空闲内存:"+run.freeMemory());
run.gc();
System.out.println("垃圾回收后JVM空闲内存:"+run.freeMemory());
}
}
D:\>javac Hello.java
D:\>java Hello
0123456789
JVM最大内存:66650112
JVM空闲内存:4955312
垃圾回收后JVM空闲内存:5019736
exec
Runtime类提供exec方法接收一个可执行程序(String),例如“notepad.exe”,然后就可以调用本机中该可执行程序。
public class Hello{
public static void main(String args[]){
Runtime run=Runtime.getRuntime();
try{
run.exec("notepad.exe");
}
catch(Exception e){
e.printStackTrace();
}
}
}
destroy
Process类提供destroy方法可以使得process的实例(进程)被销毁,而Runtime的exec的执行结果就是返回的Process的实例。所以就可以存在有如下程序:
public class Hello{
public static void main(String args[]){
Runtime run=Runtime.getRuntime();
Process p=null;
try{
p=run.exec("notepad.exe");
// }
catch(Exception e){
e.printStackTrace();
}
try{
Thread.sleep(1000);
}
catch(Exception e){
}
p.destroy();
}
}
关键字词:java,Runtime