実際のオブジェクトを扱っているのではなく、メモリ内のオブジェクトへのポインターまたは参照を扱っていることを理解するのに役立ちます。そう:
Object obj = new Object();
オブジェクトではなく、メモリ内のオブジェクトへのリンクです。リンクをnullに設定するか、別のオブジェクトへのリンクに置き換えることでリンクを削除すると、古いオブジェクトが削除されます...っぽい。ガベージ コレクションが実行されると、削除されます。そう:
obj = null;
と
obj = new Object();
基本的に古いオブジェクトを削除します。同じことがオブジェクトの配列にも当てはまります。実際のオブジェクトの配列ではなく、オブジェクトへのリンクの配列を扱っています。そのため、配列内の位置を null に設定するか、位置を新しいオブジェクトに設定すると、古いオブジェクトが削除されます。そう:
ObjArray[4] = null;
と
ObjArray[4] = new Object;
古いオブジェクトを削除します。
編集:私が言及するのを忘れていたと思います.メモリ内の単一のオブジェクトは、それに複数のリンクを持つことができ、オブジェクトがガベージコレクションによって削除される位置にあるのは、それらのリンクがすべて削除されるまでではありません.
Object obj = new Object();
ObjArray[4] = obj;
obj=null;
上記の場合、obj が null に設定されている場合、最初に作成されたオブジェクトは削除されません。これは、オブジェクトへのリンクがまだ ObjArray に存在するためです。オブジェクトがなくなる前に、obj と ObjArray[4] の両方を null に設定する必要があります。