2017-10-13 66 views
0

まず、私はこの質問がどこかで答えなければならないことを知っていますが、私は真剣にこれに対する答えを見つけることができませんでした。メソッド呼び出し後のプリミティブなローカル変数はどうなりますか?

未使用のオブジェクトを処理するJavaガベージコレクタについては知っていますが、メソッド呼び出し後のプリミティブデータ型のローカル値はどうなりますか?例えば

public void anyMethod() { 
    int foo = 20; 
} 

何がメソッド呼び出しの後のfooはどうなりますか?もはや使用されなくても、それはまだメモリのどこかにありますか?私はそのような「専門性」について気にする必要がありますか?私はそれがオブジェクトになると参照が処理されているのに対し、プリミティブ型の場合はそうではないことを知っています。たぶん私はまた、Javaでどのようにプリミティブな値が格納されているのか分かりません。

どちらかというと、

種類について、

+2

私はこのような「専門性」について気にする必要がありますか? =>いいえ –

+0

関連:https://stackoverflow.com/questions/39419901/how-to-manually-free-primitive-variables?rq=1 –

答えて

4

各機能は、スタックフレームで実行されます。 メソッドローカル変数は、このスタックフレームにメモリが割り当てられ、メソッドが完了すると(例外の有無にかかわらず)、スタックフレームの内容が破棄され、その中のすべてのデータが失われます。

+2

回答を完了するには、https://stackoverflow.com/questions/18746801/are-java-primitives-garbage-collectedはおそらく読み込みに値する –

関連する問題