1 public class ArgsTransfer { 2 3 /* 4 * 基本数据类型直接存储在变量中,函数参数传递时,是将变量中存储的数据拷贝,函数中改变形参,和调用处的实参是不同的变量,两边互不影响 5 * 引用数据类型变量中存储的是地址,传入函数时,传递的也是地址,函数中根据这个地址操作对象,和调用处引用的是同一个对象,一边改变两边都变 6 */ 7 public static void main(String[] args) { 8 9 int x = 10; 10 fun(x); 11 System.out.println(x); //print:10 12 13 Person p = new Person(); 14 p.name = "张三"; 15 fun(p); 16 System.out.println(p.name); //print:李四 17 } 18 19 static void fun(Person p){ 20 p.name = "李四"; 21 } 22 static void fun(int x){ 23 x = 15; 24 } 25 } 26 27 class Person{ 28 String name; 29 }
如图: