【发布时间】:2017-10-16 22:30:30
【问题描述】:
我关注tutorial,下面是自动装箱内存泄漏的示例。
package com.example.memoryleak;
public class Adder {
public long addIncremental(long l) {
Long sum=0L;
sum =sum+l;
return sum;
}
public static void main(String[] args) {
Adder adder = new Adder();
for(long ;i<1000;i++) {
adder.addIncremental(i);
}
}
}
现在,我可以理解由于自动装箱会创建不必要的对象,但它是如何导致内存泄漏的,我理解的方式是当您持有对死对象的强引用时会导致内存泄漏。现在,在这种情况下,一旦我退出 FOR 循环,就没有对那些 Long 对象的强引用,那么它是如何导致内存泄漏的呢?
请注意,我想了解它是如何导致内存泄漏的,我知道这些对象是不必要的。
【问题讨论】:
-
您是如何发现内存泄漏的?
-
教程似乎是绝对垃圾。 DZone 通常那么不好。这是玫瑰印度的品质。
-
@Kayaman 对我来说,这篇文章应该被重写甚至删除。很多错别字,错误的解释。在 cmets 中提供了有用的 cmets,但作者说一切都很好:)
-
虽然那里没有内存泄漏,但这并不意味着在紧密循环中分配太多对象不可能导致运行时问题。只是你的问题会有所不同。
标签: java memory memory-management memory-leaks garbage-collection