回答編集履歴
5
修正
test
CHANGED
@@ -2,6 +2,6 @@
|
|
2
2
|
|
3
3
|

|
4
4
|
|
5
|
-
int (等のプリミティブ)の場合は変数に直に値が入り stack に入るのは autoboxing された
|
5
|
+
int (等のプリミティブ)の場合は変数に直に値が入り stack に入るのは autoboxing されたオブジェクトであって参照のように共有状態にならない為、各変数を変更しても他に影響はありません。
|
6
6
|
|
7
7
|

|
4
解決していますが、質問内の例と対応する説明として int の場合の図を追加
test
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
配列はオブジェクトで、オブジェクト変数は参照です。参照先の "内容の" 変更は、同じオブジェクトを指す参照全てに影響します。
|
2
|
-
Integer もオブジェクトですが不変のため、変数の変更は "参照の" 変更となり、他の参照は変わらないので配列の内容の変更のようにはなりません。
|
3
2
|
|
4
3
|

|
4
|
+
|
5
|
+
int (等のプリミティブ)の場合は変数に直に値が入り stack に入るのは autoboxing された Integer オブジェクトであって参照のように共有状態にならない為、各変数を変更しても他に影響はありません。
|
6
|
+
|
7
|
+

|
3
図を追加
test
CHANGED
@@ -1,2 +1,4 @@
|
|
1
1
|
配列はオブジェクトで、オブジェクト変数は参照です。参照先の "内容の" 変更は、同じオブジェクトを指す参照全てに影響します。
|
2
2
|
Integer もオブジェクトですが不変のため、変数の変更は "参照の" 変更となり、他の参照は変わらないので配列の内容の変更のようにはなりません。
|
3
|
+
|
4
|
+

|
2
修正
test
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
配列はオブジェクトで、オブジェクト変数は参照です。参照先の "内容の" 変更は、
|
1
|
+
配列はオブジェクトで、オブジェクト変数は参照です。参照先の "内容の" 変更は、同じオブジェクトを指す参照全てに影響します。
|
2
2
|
Integer もオブジェクトですが不変のため、変数の変更は "参照の" 変更となり、他の参照は変わらないので配列の内容の変更のようにはなりません。
|
1
修正
test
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
配列はオブジェクトで、オブジェクト変数は参照です。
|
1
|
+
配列はオブジェクトで、オブジェクト変数は参照です。参照先の "内容の" 変更は、その配列を参照する変数全てに影響します。
|
2
|
-
Integer もオブジェクトですが不変のため、変数の変更は
|
2
|
+
Integer もオブジェクトですが不変のため、変数の変更は "参照の" 変更となり、他の参照は変わらないので配列の内容の変更のようにはなりません。
|