1.Runtime类的主要作用
在每个JVM进程中,都有一个带有Runtime类的对象,其主要功能是获取Runtime环境属性或创建新进程。
在定义Runtime类时,它的构造函数已经被私有了(单例设计模式的应用程序),以确保在整个Runtime中只有一个Runtime对象。所以在Runtime类中有一个静态方法来获取Runtime实例
public static Runtime getRuntime();
2.Runtime类的定义形式
Runtime类中有以下方法:
public long totalMemory();//返回所有可用内存空间
public long maxMemory();//返回最大可用内存空间
public long freeMemory();//返回空余内存空间
例如:观察内存大小:
public class TestDemo{
public static void main(String[] args){
Runtime runtime=Runtime.getRuntime();
System.out.println("MAX="+runtime.maxMemory());
System.out.println("Total="+runtime.totalMemory());
System.out.println("FREE="+runtime.freeMemory());
}
}
如果一旦产生了过多垃圾,那么就会改变可用的内存空间大小,为此Runtime类里面提供了:public void gc();手动实现JVM的gc机制。
package TestDemo;
public class TestDemo{
public static void main(String[] args){
Runtime runtime=Runtime.getRuntime();
System.out.println("MAX="+runtime.maxMemory());
System.out.println("Total="+runtime.totalMemory());
System.out.println("FREE="+runtime.freeMemory());
String str="";
for (int i = 0; i < 9000; i++) {
str+=i;
}
System.out.println("MAX="+runtime.maxMemory());
System.out.println("Total="+runtime.totalMemory());
System.out.println("FREE="+runtime.freeMemory());
runtime.gc();
System.out.println("MAX="+runtime.maxMemory());
System.out.println("Total="+runtime.totalMemory());
System.out.println("FREE="+runtime.freeMemory());
}
}
1. Runtime类使用单例设计模式,并且必须通过内部的getRuntime()方法获得实例化的对象
2. Runtime类为手动gc提供了gc()