引用传递与按值传递

按值传递:方法定义时,如果形参是基本类型,那么参数就是按值传递

引用传递:如果形参是引用类型,那么参数就是引用传递

按值传递和按引用传递有什么区别呢?

按值传递:传递变量的值(也可以理解传递的变量的副本),不影响变量本身

按引用传递:传递的是内存地址(也可以理解传递的变量本身),影响变量本身

注意://String作为参数传递的时候,按值传递

按值传递案例:
例如:

public class Demo {

    public void  add(int num1){
        num1+=100;
        System.out.println("add()中的num1:"+num1);
    }
}

public class DemoTest {
    public static void main(String[] args) {
        Demo demo = new Demo();
        int num1=13;
        demo.add(num1);
        System.out.println("DemoTest中的num1:"+num1);
    }
}

控制台输出:

add()中的num1:113
DemoTest中的num1:13

引用传递的案例:

public class Demo {

    public void  add(int[] array){
        array[0]+=100;
        System.out.println("add()中的num1:"+array[0]);
    }
}

public class DemoTest {
    public static void main(String[] args) {
        Demo demo = new Demo();
        int[] array = new int[1];
        array[0]=12;
        demo.add(array);
        System.out.println("DemoTest中的num1:"+array[0]);
    }
}
add()中的num1:112
DemoTest中的num1:112

猜你喜欢

转载自blog.csdn.net/weixin_43951534/article/details/88642770