回答編集履歴
2
誤字修正
answer
CHANGED
@@ -8,6 +8,6 @@
|
|
8
8
|
対して,配列やオブジェクトは,参照用の変数がスタックに確保され,実体はヒープ領域に確保されます.
|
9
9
|
|
10
10
|
配列やオブジェクトの変数として見えているのは,ヒープ領域に確保された実体への参照です.
|
11
|
-
これはスタックにあるので,参照を変える事はできませんが,ヒープ領域への参照が確立されている為,実
|
11
|
+
これはスタックにあるので,参照を変える事はできませんが,ヒープ領域への参照が確立されている為,実体の変更は可能というわけです.
|
12
12
|
|
13
13
|
いかがでしょうか.
|
1
補足
answer
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
Javaでは,ローカル変数はスタック領域に確保されます.
|
4
4
|
スタック領域の変数は,スコープが変わるとアクセスできません.
|
5
5
|
従って,ラムダ式の中から別のスコープに移る(別の関数を呼び出す等する)と,スコープが無効になるので,それでもなお書き変えられるようにするには参照でなければなりません.
|
6
|
+
おそらくJavaではFinalに限定することで,この問題を未然に防いでいるのだと思います.
|
6
7
|
|
7
8
|
対して,配列やオブジェクトは,参照用の変数がスタックに確保され,実体はヒープ領域に確保されます.
|
8
9
|
|