web-dev-qa-db-ja.com

Javaのバイト配列の空きメモリ

バイトの配列(Javaでは新しいバイト[サイズ])によって割り当てられたメモリを解放する最良の方法は何ですか?

21
fdezjose

参照を停止します。

54

Javaで新しいbyte []を作成するとき、あなたは次のようなことをします

byte[] myArray = new byte[54];

それを解放するには、あなたがすべきです

myArray = null;

他の何かがあなたのバイト配列を参照する場合、

yourArray = myArray;

他の参照もnullに設定する必要があります。

yourArray = null;

Javaガベージコレクションは自動的に行われます。JVMがプログラム全体からメモリに到達できなくなったことを検出できる場合、JVMはメモリを解放します。

14
Edwin Buck

そのバイト配列へのすべての参照を削除します。ガベージコレクターが残りを処理します。

6
HoLyVieR

それへのすべての参照をnullに設定すると、Javaの自動ガベージコレクションの候補になります。ただし、これが発生するまでにどれくらいの時間がかかるかはわかりません。本当にメモリをすぐに明示的に解放する必要がある場合は、System.gc();を呼び出すことができます。

また、単にクリアするために、参照を明示的にnullに設定する必要がない場合もあります。参照が範囲外になると、それらは自動的にnullになります。ローカル変数参照は、それが宣言されているメソッドの実行が完了するとnullになります。したがって、ローカル変数は通常、アプリの実行中に常に暗黙的に解放されます。

2
Alb