java内存泄漏修复

时间:2012-03-08 15:04:45

标签: java memory memory-leaks

我正在寻找java程序中的一些内存泄漏。

我有一个名为ABCConfigurationABCConfigurationInfo类的类。 ABCConfigurationInfo是一个具有一些private static final String常量并保留私有TreeMap对象的类。 ABCConfiguration是一个配置类,它保留ABCConfigurationInfo类(private ABCConfigurationInfo fInfo;)的对象。

当多次执行程序时,我发现(使用MAT)ABCConfigurationInfo的对象不断增加。我没有修复。

那是我改变了

private ABCConfigurationInfo fInfo 

private static ABCConfigurationInfo fInfo. 

在此之后,我在多次执行后检查了ABCConfigurationInfo的对象。它变得稳定,一个对象正在创造。这是真正的解决方案吗?你能告诉我吗。

我知道,有了这些信息很难说清楚。

提前致谢

2 个答案:

答案 0 :(得分:1)

在原始版本中,每ABCConfigurationInfo只有一个ABCConfiguration。在static版本中,整个应用程序只有一个ABCConfigurationInfo;它由所有ABCConfiguration个对象共享。我们不知道这是否合适 - 只有你这样做。不过,这是一个很大的变化,所以你当然需要知道自己在做什么。

答案 1 :(得分:0)

如果你能负担所有ABCConfiguration对象上相同的fInfo实例,那么它就是一个有效的修复。