⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memorydemo.java~1~

📁 java2参考大全上的例子的源码和自己的理解.
💻 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 + -