私はただ興味があります。
while/forループ内で参照を定義するとします。
JVMはこの参照を反復ごとに定義しますか、それとも1回だけ定義するように最適化されていますか?
私はただ興味があります。
while/forループ内で参照を定義するとします。
JVMはこの参照を反復ごとに定義しますか、それとも1回だけ定義するように最適化されていますか?
毎回定義し、そのループ反復のみにスコープを設定します。
ループの反復が完了するとすぐに、GCの対象になります。
Louis Wassermanがコメントしたように、変数は毎回再初期化されますが、メモリスペースはおそらく再利用されます。
参照は各反復で定義されます。コードがネイティブコードに最適化されると、ループの外に移動できるため、パフォーマンスに影響を与える必要はありません。この参照をnew
毎回オブジェクトに設定すると、そのオブジェクトの作成も最適化されていない限り、反復ごとに新しいオブジェクトが作成される可能性があります。
その毎回定義されます。(私の知る限り)そのための最適化はありません。
-は、ループが繰り返されるたびに参照を定義しますが、参照のスコープはその反復にのみ関連付けられます。
-ループの外側で参照を宣言し、ループの内側でオブジェクトを割り当てたとすると、参照は同じままですが、すべての反復でそのタイプの新しいオブジェクトを参照します。