如果存在SomeClass的单例实例,而其他某个类在SomeClass实例上反复调用createMap()方法,那么是否会发生内存泄漏?我用50000个循环进行了测试,并监视了堆,但没有看到泄漏,但希望提出意见。
class SomeClass {
Map<String, String> someMap;
public void createMap() {
someMap = new HashMap<String, String>();
System.out.println("Created map");
try {
Thread.sleep(10);
} catch(InterruptedException ie){
}
}
}
最佳答案
简短答案-不。
长答案-取决于try
下的完整代码以及如何调用createMap()
。
根据您的问题,我假设您担心应用程序的功能和整体性能。内存只是它的一方面。您的Singlton类会从逻辑的角度出发,因为您没有对createMap()
的并发控制,并且多个并行调用可能会覆盖someMap
。
这也取决于您在try{
块下执行的操作。如果要将someMap
发送到其他方法之外,则可能存在内存泄漏。