1

我在我的 java web 应用程序中使用 Spring + Hibernate。我在网上看到 spring 和 hibernate 会比平时使用更多的内存。我经常内存不足。所以我尝试使用jvisualvm来分析我的 tomcat 。当我在内存中看到时,对象会不断添加(而不是替换现有对象)。

例如:如果我正在加载一个产品对象列表(列表中有 1000 个对象),那么将在堆内存中添加 1000 个产品对象。如果我再次刷新数据网格,它将在堆内存中添加 1000 个对象,就像它不断增加一样(见图)。有没有办法替换堆内存中的现有对象而不是继续添加?

堆内存不断添加prmaster对象

4

1 回答 1

3

不,您不能替换heap上的对象。您可以做的是删除对该对象的所有引用并将其从列表中删除,Java 的垃圾收集器将销毁该对象。

请参阅垃圾收集上的此链接:http: //javabook.compuware.com/content/memory/how-garbage-collection-works.aspx

于 2013-06-17T14:01:17.333 回答