java 方法调用,形参改变,实参是否发生改变

今天遇见一个面试题,java基础的东西。我竟然给忘了。。。写下来加深一下印象

面试题:

public class Test2 {
    public static void main(String[] args) {
        String a = new String("abc");
        int b = 5;
        int[] c={1,2,3,4};
        changeInt(a,b,c);
        System.out.println(a +"-"+ b +"-"+ Arrays.toString(c));
    }

    public static void changeInt(String a,int b,int[] c) {
        a = "123456";
        b = 10;
        c[0] = 5;
    }
}

请输出正确结果:

运行结果:

abc-5-[5, 2, 3, 4]

结论是这样:

实参:如果是基本类型或者String,则实参不会变(传的是值);

            如果是对象集合或者数组,则实参会改变(传的是引用)。

谨记下次不会忘记!!!


你可能感兴趣的:(Java基础)