时间的法外狂徒

导航

将数组作为方法参数

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]

可以看出,数组没有作为形参传递时,可以直接给数组的引用赋值;当数组作为方法形参时,直接赋值无效,这时元素单个赋值是有效的。

posted on 2020-06-20 11:47  抄手砚  阅读(867)  评论(0编辑  收藏  举报