我对最终定稿的理解是这样的:
为了清理或回收对象占用的内存,垃圾收集器开始运行.(自动调用?)
垃圾收集器然后取消引用该对象.有时,垃圾收集器无法访问该对象.然后调用finalize进行最后的清理处理,之后可以调用垃圾收集器.
这是对最终确定的准确描述吗?
如何将对象及其所有数据结构使用的内存回收到我的应用程序内存中,如果没有System.gc()它只建议而不必执行内存检查.这还包括像finalize.
换句话说,假设我有一个HashMap,我希望它存储的所有数据都从内存中删除.我通常用clean方法清理这种类型的集合或将其附加到null但是似乎没有将内存空间返回给应用程序?
编辑:
让我们说以下内容:
TIntObjectHashMap<byte[]> map=new TIntObjectHashMap<byte[]>();
//fill the map with 20GB
map.clear();
//Or map=null;
Run Code Online (Sandbox Code Playgroud)
20GB不应该免费吗?就是那个问题.