本帖最后由 黄鸿达 于 2013-1-30 15:10 编辑
这套题我想了半天,虽然知道system.in.read是让你输入数据,并且通过多段的输入动作来了解程序的运行进度。这套题目是用来证明2个对象互相引用,垃圾回收机制可以通过可达性分析来判定对象是否存活的 。但是你问的是system.in.read这个起什么作用,我当然就想回答“并且通过多段的输入动作来了解程序的运行进度”。但是同时我又想,我怎么知道你这个垃圾回收机制真的运行了?百度了一下,找不到我想要的理想答案,内存泄露就是一些无用的数据占用内存。我想了想,只要程序没结束前,有看到本来的对象所占用内存减少了,就代表GC执行成功了。
图截得不好,有兴趣自己运行一下,因为自己电脑也有别的程序,内存的可用数也不稳定。
但是程序的运行就是,输入数据,直到程序建立对象,再输入输入,触发垃圾回收机制,再输入输入,等待回收,基本输入34次就回收了,之后再输入输入程序结束。 |
-
1.JPG
(215.41 KB, 下载次数: 8)
红字,程序没开始的内存
-
2.JPG
(213.95 KB, 下载次数: 9)
开始,并输入点数据创建里对象,由于对象创建了很大的数组占用了许多内存 ... ...
-
3.JPG
(225.77 KB, 下载次数: 10)
间断输入数据,令程序进行,下面打印语句显示类似GC已经启动了的英文打印语句,同时发现内存被释放了,但是 ...
-
4.JPG
(233.19 KB, 下载次数: 14)
程序运行完毕
组图打开中,请稍候......
|