JAVA中垃圾收集的问题(会JAVA的进)

请运行程序。就知道我问的问题。。。importjava.lang.Runtime;classRuntimedemo{publicstaticvoidmain(String... 请运行程序。就知道我问的问题。。。
import java.lang.Runtime;

class Runtimedemo
{
public static void main(String args[])
{
int i=0;
//PrintWriter out;
System.gc();
System.out.println("开始运行前空闲内存量: " + Runtime.getRuntime().freeMemory());
System.out.println("程序开始运行:");
while(i<100)
{
i++;

System.out.print("."+i);
}
System.out.println();
System.out.println("运行结束!");
System.out.println("结束后空闲内存量: " + Runtime.getRuntime().freeMemory());

System.gc();
System.out.println("释放后空闲内存量: " + Runtime.getRuntime().freeMemory());

System.out.println(" 系统内存总量: " + Runtime.getRuntime().totalMemory());
System.out.println(" 系统其中还有"+(long)(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())+"那里去了?");
}
}
请不要回答题外话。。。。
展开
 我来答
cfanpk
2006-10-03 · TA获得超过530个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:249万
展开全部
使用一个你知道它有与之相关联的本地资源(例如,一个GUI组件,文件,套接字)的对象,那么在使用完之后,一定要调用它的dispose()或equivalent方法。这将保证立即回收本地资源并且减小这些资源流失的可能性。

finalize是Java编程语言的一个特性:它允许你对垃圾收集器发现的不可达的对象进行最后清理。典型地用于回收与一对象相关联的本地资源。下面是一个简单的finalize示例:

public class Image1 {
//指向本地图像数据
private int nativeImg;
private Point pos;
private Dimension dim;
//它释放本地图像;
//随后对它的调用将被忽略
private native void disposeNative();
public void dispose() { disposeNative(); }
protected void finalize() { dispose(); }
static private Image1 randomImg;
}
百度网友2206552
2006-10-02 · TA获得超过782个赞
知道小有建树答主
回答量:1110
采纳率:0%
帮助的人:625万
展开全部
这个问题其实也很简单,Java的垃圾回收机制只有在内存不够的时候才会回来回收,就象男孩子的衣服一样,在还有衣服穿的时候一般是不会去洗的!
运行了一下你的程序,知道是这个原因,内存并没有被回收!我说的是现在,到你的内存不够用的时候就自然被Java回收了...
不好意思,我的Java也才只是入门!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式