Javaで、配列型データの参照先を変更する際の挙動についてご教示いただきたいです。
配列は参照型のため、再代入によって、別の配列に変えることができると認識しております。
以下のコードのmain関数において、arrにarr2を再代入すると、arrの参照先がarr2になることを
確認できました。
ところが、これと同じ処理をsub関数で実行したところ、arrの参照先は変わりませんでした。
main関数およびsub関数内で、配列の参照先を確認して、呼び出し先と呼び出し元で同じで
あることを確認しております。
この事象の原因について、どのように解釈すればよろしいでしょうか。
Java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) throws Exception { 5 int[] arr = new int[]{0,1,2}; 6 int[] arr2 = new int[]{3,4,5}; 7 System.out.println(arr); 8 System.out.println(arr2); 9 10 System.out.println(Arrays.toString(arr)); 11 12 sub(arr,arr2); // sub関数実行時点で、arr={0,1,2} 13 arr = arr2; // arr={3,4,5}となる。 14 System.out.println(Arrays.toString(arr)); 15 } 16 17 public static void sub(int[]arr, int[] arr2) { 18 System.out.println(arr); 19 System.out.println(arr2); 20 arr = arr2; 21 } 22}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/16 17:56 編集
2022/06/16 18:32 編集
2022/06/17 00:20