首页 > 解决方案 > 为什么 GarbageCollector 会这样工作?

问题描述

public class Test{
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        System.out.println("total memory before "+runtime.totalMemory());
        System.out.println("free memory before "+runtime.freeMemory());
        for (int i=0;i < 1_000_000_000;i++){
            Date date = new Date();
            date=null;
        }
        System.out.println("total memory after "+runtime.totalMemory());
        System.out.println("free memory after "+runtime.freeMemory());
        System.gc();
        System.out.println("total memory after gc "+runtime.totalMemory());
        System.out.println("free memory after gc "+runtime.freeMemory());
    }
}

我根据教程视频编写了代码。我的输出结果如下。

这是我电脑上的结果

这是教程视频中的结果。

1)为什么调用gc()后总内存和空闲内存都大大减少了?2)。为什么教程视频中没有发生这种情况。

标签: garbage-collectiongarbage

解决方案


推荐阅读