0

私の質問はやや単純です。私が知りたいのは、JavaでRAMからオブジェクトのインスタンスを削除してインスタンス化できるかということだけです? 同様に、次のように入力します。

new Cat();

その新しい猫に変数を割り当てないので、アクセスできません。これはゲームで起こります。「new Pig();」のようなもので、豚のインスタンスを作成します。しかし、豚が死ぬとどうなりますか?どのように削除されますか?独自のメソッドを呼び出して自分自身を消去できますか?

ありがとう。

4

4 に答える 4

5

ガベージ コレクターは、「ライブ」で何も取得できなくなった後、ある時点でそれをクリーンアップします。

明示的に削除することはできません。ある時点でガベージコレクションされるだけです。

これに関する記事はいくつもあります。詳細については、「Java ガベージ コレクタ」を検索してください。理想的には、ガベージ コレクションに関しては最先端の技術が急速に進歩しているため、最近の記事を読むことをお勧めします。

于 2013-03-11T23:21:35.537 に答える
2

Java でガベージ コレクターがどのように機能するかについての良い記事を次に示します。

http://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html

于 2013-03-11T23:22:28.527 に答える
0

手動で行うことはできません。JVM のガベージ コレクターが処理します。Javaは、この目的のためfree()にそれぞれ持っているCやC++とは異なります。delete()

あなたが持っている最も近いものはSystem.gc();andですRuntime.gc();が、ガベージコレクターを強制しません。彼らはただ提案します。

ガベージ コレクション自体を強制することができます: Force Garbage Collection。Java 仮想マシン ツール インターフェイスを使用して、関数

jvmtiError ForceGarbageCollection(jvmtiEnv* env)

「VMにガベージコレクションを強制的に実行させます。」

于 2013-03-11T23:55:53.640 に答える