我在我的 Java Web 应用程序中使用 Spring + Hibernate。我在网上看到spring和hibernate会比平时占用更多的内存。我经常用完内存。所以我尝试使用 jvisualvm 来分析我的 tomcat。当我在内存中看到时,对象不断添加(而不是替换现有对象)。
例如:如果我正在加载一个产品对象列表(列表中有 1000 个对象),那么将在堆内存中添加 1000 个产品对象。如果我再次刷新数据网格,它会在堆内存中添加 1000 个对象,就像它一直在增加一样(参见图像)。有没有办法替换堆内存中的现有对象而不是继续添加?
最佳答案
不,您不能替换堆 上的对象。您可以做的是删除对该对象的所有引用并将其从列表中删除,Java 的垃圾收集器 将销毁该对象。
请参阅有关垃圾收集的链接:http://javabook.compuware.com/content/memory/how-garbage-collection-works.aspx
关于Java - 替换堆内存中的现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17149421/