JAVA值传递之基本数据类型和引用数据类型

#1.基本数据类型值传递

package 经典小Demo.值传递;

public class Test {
    public static void main(String[] args) {
        int a=5;
        int b=10;
        change(a,b);
        System.out.println("a="+a);
        System.out.println("b="+b);
    }
    public static void change(int a,int b){
        a=100;
        b=200;
    }

}

/**
*  a=5
*  b=10
*/
说明:
成员变量a,b与方法change的a,b无关,而change这个方法
执行完了之后里面的变量值要弹栈销毁,而这里的a,b值是
形参a,b的值。
当传递的参数为基本类型,形参的改变不影响实际参数。

总结:
普通类型的形参的改变不会影响实参。
-----------------------------------------------------------------------------------------------------------------------------------------

#2.引用数据类型的值传递
package 经典小Demo.值传递;

public class ArgumentsDemo02 {
    public static void main(String[] args) {
        int[] arr={1,2,3};
        change(arr);
        //把乘以2后的结果遍历输出
        for (int i = 0; i <arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    public static void change(int[] arr){
        //数组的每个元素乘以2
        for (int i = 0; i <arr.length ; i++) {
            arr[i]*=2;
        }
    }
}
/**
* 2
* 4
* 6
*/
说明: 
引用类型值传递传递的是地址值
方法的形参的改变会影响实参

总结:
引用类型的形参会影响实参的改变

成年人的世界没有那么多的童话,也没有那么多的逆袭。
原文地址:https://www.cnblogs.com/shijinglu2018/p/10498228.html