我有一个Map作为语法Map<String, String> testMap = new HashMap<String, String>();.在此地图中可以有1000个数据.
当我的应用程序需要新的数据列表时,我必须清除Map.但是当我看到Map.clear()的代码为
/**
* Removes all of the mappings from this map.
* The map will be empty after this call returns.
*/
public void clear() {
modCount++;
Entry[] tab = table;
for (int i = 0; i < tab.length; i++)
tab[i] = null;
size = 0;
}
Run Code Online (Sandbox Code Playgroud)
我意识到clear方法循环n次(其中n是Map中的数据).所以我认为可以有一种方法来重新定义Map,因为testMap = new HashMap<String, String>();
之前使用的Map将是Garbage收集的.
但我不确定这将是一个好方法.我正在研究移动应用程序.
你能指导我吗?
关于Java Web应用程序性能的一个小问题.
我们假设我有List<Rubrique> listRubriques十个Rubrique对象.
A Rubrique包含一个products(List<product> listProducts)列表和一个clients(List<Client> listClients)列表.
如果我这样做,内存中究竟会发生什么:
listRubriques.clear(); listRubriques = null;
Run Code Online (Sandbox Code Playgroud)
我的观点是,因为listRubriques是空的,所以此列表之前引用的所有对象(包括listProducts和listClients)很快就会被垃圾收集.但是因为Java中的Collection有点棘手,因为我的应用程序存在相当大的性能问题,我问的问题是:)
编辑:我们现在假设我的客户端对象包含一个List<Client>.因此,我的对象之间有一个循环引用.如果我listRubrique被设置为什么会发生什么null?这一次,我的观点是我的客户端对象将变得"无法访问"并可能造成内存泄漏?