-2

如何将对象使用的内存及其所有数据结构回收到我的应用程序内存中,否则System.gc()只会建议不一定执行内存检查。这也包括像finalize.

换句话说,假设我有一个HashMap并且我希望它存储的所有数据都从内存中删除。我通常会使用clean方法清理这种类型的集合或将其附加到,null但这似乎不会将内存空间返回给应用程序?

编辑

让我们说以下内容:

    TIntObjectHashMap<byte[]> map=new TIntObjectHashMap<byte[]>();
    //fill the map with 20GB
    map.clear();
   //Or map=null;

20GB不应该免费退回吗?就是那个问题。

4

2 回答 2

9

基本上,你不能。你不能做任何事情来绝对强制垃圾收集,你当然不能手动删除一个对象。

学会爱和信任垃圾收集器。

于 2013-03-01T21:11:06.467 回答
2

你不能强制垃圾收集,你唯一能做的就是调用System.gc()方法,但这只是对垃圾收集器的一个提示,它不会强制它进行收集

于 2013-03-01T21:15:01.823 回答