0

最近聞かれたのですが、

次のインターフェイスが与えられた場合、Processor#doSomething(String) が呼び出されるたびにメモリ リークするクラスを作成し、その理由を説明します。

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

C/C++ と同じ意味で Java にメモリ リークがあるかどうかはわかりません。ここでのインターフェースの重要性は何ですか。

また、メソッドの呼び出しに # が使用されているのを見たことがありません。

誰かが私にこれを説明できますか?ありがとう

4

1 に答える 1

0

単純な実装にはstaticリストがあり、doSomethingが呼び出されたときに、入力をリストに追加し続けるだけStringです。その理由は、(静的メンバーを介して) 文字列への強い参照を格納しているため、文字列をガベージ コレクションできないためです。

于 2013-06-20T21:16:10.657 に答える