0

最近有人问我,以下

给定以下接口,编写一个每次调用 Processor#doSomething(String) 时都会泄漏内存的类,并解释为什么会这样。

public interface Processor {
    void doSomething(String msg);
}

我不确定 Java 中是否存在与 C/C++ 相同的内存泄漏。这里的接口有什么意义。

另外,我从未见过 # 用于调用方法。

谁可以给我解释一下这个?谢谢

4

1 回答 1

0

一个简单的实现会有一个static列表,当doSomething被调用时,只需继续将输入添加String到列表中。原因是因为您正在存储对字符串的强引用(通过静态成员),因此无法对字符串进行垃圾收集。

于 2013-06-20T21:16:10.657 回答