基本数据类型的传参机制
public class Test { public static void main(String[] args) { int a = 10; int b = 20; AA aa = new AA(); aa.swap(10 , 20); System.out.println("在main方法中a和b的值 a=" + a + "b=" + b); // a = 10 b = 20 } } class AA{ public void swap(int a , int b){ System.out.println("在swap方法中a和b交换前的值 a=" + a + "b=" + b); //a = 10 b = 20 int temp = 0; temp = a; a = b; b = temp; System.out.println("在swap方法中a和b交换后的值 a=" + a + "b=" + b); //a = 20 b = 10 } }
结论
基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参!
引用数据类型的传参机制
public class Test { public static void main(String[] args) { int arr[] = {1, 2, 3}; B b = new B(); b.num(arr); System.out.println("main方法下的arr数组"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } } class B { public void num(int arr[]) { arr[0] = 100; System.out.println("B方法下的arr数组"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } }
结论
引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参!