#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
*/
说明:
引用类型值传递传递的是地址值
方法的形参的改变会影响实参
总结:
引用类型的形参会影响实参的改变