//GetMemory.java
class GetMemory
{
public static void main(String args[])
{
Runtime rt = Runtime.getRuntime(); //获得自动创建的Runtime类的对象
long mem1, mem2;
Integer someints[] = new Integer[100];
System.out.println("总内存: "+rt.totalMemory()); //总内存--以字节为单位
mem1 = rt.freeMemory(); //可用内存
System.out.println("可用内存: " + mem1);
rt.gc(); //GC(Gabage Collection)-内存回收-少用-java会自动回收
mem1 = rt.freeMemory();
System.out.println("可用内存: "+ mem1); //可用内存--看看内存回收后可用内存是否变化了
for(int i=0; i<100; i++) //占用内存--看看100个Integer类的对象用了多少内存
someints[i] = new Integer(i);
mem2 = rt.freeMemory();
System.out.println("可用内存: "+ mem2); //可用内存
System.out.println("使用的内存: "+(mem1-mem2)); //用的内存
for(int i=0; i<100; i++)
someints[i] = null; //把不再引用的对象标志为null--以便回收
rt.gc(); //释放内存
mem2 = rt.freeMemory();
System.out.println("可用内存 :" + mem2); //可用内存
try{
rt.exec("notepad"); //exec()--执行其他独立进程的程序
} //java认为exec()可能出现异常-java规定-必须对其进行
catch(Exception e){ //捕获或声明以便抛出
System.out.println(e.toString());
}
}
}