📄 memorydemo.java~1~
字号:
package 内存管理;
/**
尽管Java提供了自动垃圾回收,有时也想知道对象堆的大小以及它还剩下多少。可以
利用这些信息检验你的代码的效率,或估计对某些类型,有多少对象可以被实例化。为了
获得这些值,可以使用totalMemory( )和freeMemory( )方法。
正如我们在第1部分提及的,Java的垃圾回收器周期性地运行将不再使用的对象放入回
收站。然而有时想在收集器的下一个指定循环之前收集被丢弃的对象。可以通过调用gc( )
方法按照要求运行垃圾回收器。一个好的尝试是调用gc( )方法,然后再调用freeMemory( )
方法以获得内存使用的底线。接着执行你的程序,并再一次调用freeMemory( )方法看分配
了多少内存。下面的例子说明了这个思想。
*/
// Demonstrate totalMemory(), freeMemory() and gc().
class MemoryDemo {
public static void main(String args[]) {
Runtime r = Runtime.getRuntime();
long mem1, mem2;
Integer someints[] = new Integer[1000];
System.out.println("Total memory is: " +
r.totalMemory());
mem1 = r.freeMemory();
System.out.println("Initial free memory: " + mem1);
r.gc();
mem1 = r.freeMemory();
System.out.println("Free memory after garbage collection: "
+ mem1);
for (int i = 0; i < 1000; i++) {
someints[i] = new Integer(i); // allocate integers
}
mem2 = r.freeMemory();
System.out.println("Free memory after allocation: "
+ mem2);
System.out.println("Memory used by allocation: "
+ (mem1 - mem2));
// discard Integers
for (int i = 0; i < 1000; i++) {
someints[i] = null;
}
r.gc(); // request garbage collection
mem2 = r.freeMemory();
System.out.println("Free memory after collecting" +
" discarded Integers: " + mem2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -