に同じオブジェクトを指す参照変数は、私は機能によって、クラス、そのクラスタのActionListenerにしてきたGUIプログラムを、開発しています。私の質問は、JVMがjButtonをどのように処理し、同じActionListenerが追加されたかに関するものです。ジャワ、メモリ
まず、 JVMは、メモリ内の同じ文字列オブジェクトを指す、同じ文字列(たとえば)を指す2つの参照変数を渡すことによって、メモリを節約できることを認識しています。今
public class Example {
String str1 = "SomeString";
String str2 = "SomeString";
}
、私の質問はこれです:私は、たとえば、5つのJButtonがを持っている場合。すべてのボタンには、同じActionListenerが追加されています。プログラムを実行すると、同じクラスの5つの別々の同一のスタイリストが追加されますか?あるいは、JVMは(上記と同様の)何かをするでしょうか?事前に
- 感謝:)
のためにそれをテスト示唆しています。または、自分でテストすることもできます。あなたの質問は混乱しています。同じActionListenerオブジェクトを5つの異なるボタンに渡すと、なぜ5つのオブジェクトに分割されると思いますか? –
お返事ありがとうございます。私の例では、私は意味しました。 5つの異なるオブジェクトに5つの異なるオブジェクトを明示的に追加すると、JVMはメモリ空間を最適化し、同じオブジェクトを共有させます。 –
その場合、いいえ。 JVMはそのようなオブジェクトをマージしません。文字列は特殊なケースです。ただし、複数のボタンに対して同じActionListenerを使用できます。 –