1、數組沒有做方法參數時,可以直接給數組的引用賦值
2、數組作為方法參數傳遞時,給數組的引用賦值是無效的,需要分別給每個元素賦值。
其實這些都是java形參和實參的原理。
import java.util.Arrays; public class ArrayTest { public static void main(String[] args){ int[] intArrs = new int[5]; System.out.println(Arrays.toString(intArrs)); //直接給整個數組賦值,有效 int[] intArrs2 = {2,3,4,5}; intArrs = intArrs2; System.out.println(Arrays.toString(intArrs)); //在方法中通過形參給整個數組賦值,無效 apply(intArrs); System.out.println(Arrays.toString(intArrs)); //分別給單個數組元素賦值,有效 apply2(intArrs); System.out.println(Arrays.toString(intArrs)); } /** * 給整個數組賦值 * @param arr */ public static void apply(int[] arr){ int[] intArr = {3,45,43,55,33,55,33}; arr = intArr; } /** * 給數組單個元素賦值 * @param arr */ public static void apply2(int[] arr){ for(int i=0;i<arr.length;i++){ arr[i] = 66; } } }
運行結果:
[0, 0, 0, 0, 0] [2, 3, 4, 5] [2, 3, 4, 5] [66, 66, 66, 66]
可以看出,數組沒有作為形參傳遞時,可以直接給數組的引用賦值;當數組作為方法形參時,直接賦值無效,這時元素單個賦值是有效的。