[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00262] Re: インスタンスの処理について



お世話になります。横山です。
大崎さま返信ありがとうございます。

> JavaはGC(ガーベッジコレクション、ごみ集め方式)を使ってメモリを管理してい
> ます。newによって生成されたインスタンスは誰も使わなくなったら、(いつか)
> 勝手に消去されます。
> つまり、だれからも参照されないようにすれば良いのです。

なるほど。仕組みがちょっと分かった気がします。
極端にいえば、使わないインスタンスはnullしてメモリ上にごみとしておいて
おけばよいんですね。
知合いが今はメモリも大きくなってメモリ領域を確保するようなプログラミングを
神経質に意識する必要がなくなった、と言っていたのを思い出しました。
富豪的プログラミングって言葉を聞いたことがありますが、これもあてはまりますよね。

> 察しの通り、Xボタンを押してもDataクラスのインスタンスは(メモリ中から)削
> 除されません。それは、dataという変数がそのインスタンスを参照しているから
> です。
> そして、同じインスタンスに対してshow()しているのだから、当然、同じウィン
> ドウが再び表示されるのです。

納得しました。

> この場合は、Xボタンが押されて、再びウィンドウを表示する場合には新たに
> Dataクラスのインスタンスを作成する必要があります
> 結局、Xボタンが押されたときにdata = null という代入を入れれば、希望通り
> の動作になるのではないかと思います。
Xボタンが押されたときにdata = nullを代入するようにしたら希望通りいきました。
御指導ありがとうございました。