Java 在设计时,考虑到了垃圾回收,Java在JVM中加上了一个机制,这个机制会不定时的启动,然后会检查内存哪些是你已经不再使用的 .这个机制就是Java 不同于其他程序语言的一个非常重要的特色——“Garbage Collection”,负责执行这项机制的就是“Garbage Collector”,简单“GC”。
示例:
public
class
GCTest
... {
public static void main(String argv[])
...{
Runtime rt=Runtime.getRunTime();
System.out.println("Progra start...");
System.out.println("Free/Total memory(bytes):"+rt.freeMemory()+"/"+rt.totalMemory());
MyObject obj1=new MyObject(1);
MyObject obj2=new MyObject(2);
MyObject obj3=new MyObject(3);
System.out.println("After created three MyObject objects...");
System.out.println("Free/Total memory(bytes):"+rt.freeMemory()+"/"+rt.totalMemory());
obj1=null;
obj2=null;
obj3=null;
System.out.println("After released three MyObject objects...");
System.out.println("Free/Total memory(bytes):"+rt.freeMemory()+"/"+rt.totalMemory());
}
}
... {
public static void main(String argv[])
...{
Runtime rt=Runtime.getRunTime();
System.out.println("Progra start...");
System.out.println("Free/Total memory(bytes):"+rt.freeMemory()+"/"+rt.totalMemory());
MyObject obj1=new MyObject(1);
MyObject obj2=new MyObject(2);
MyObject obj3=new MyObject(3);
System.out.println("After created three MyObject objects...");
System.out.println("Free/Total memory(bytes):"+rt.freeMemory()+"/"+rt.totalMemory());
obj1=null;
obj2=null;
obj3=null;
System.out.println("After released three MyObject objects...");
System.out.println("Free/Total memory(bytes):"+rt.freeMemory()+"/"+rt.totalMemory());
}
}
在示例中,使用了Runtime这个类所提供的freeMemory和totalMemory来看目前系统(JVM)中,总共有多少内存,还余多少内存。
注意:Runtime类没有提供构造函数让你可以构造对象出来使用,这是因为电脑要保证一个系统(JVM)中只能有一个Runtime对象。所以我们要改由Runtime类所提供的getRuntime方法,来取得这个惟一的Runtime对象。
未完待续......