概念
参数传递一般有两种,一种是“传值”,另一种是“传地址值”。对象的传递是引用传递,也就是传地址,原始类型数据(int,String等)传递是值传递,也就是拷贝一份传进去。传值是指在调用方法时,把参数的值传递给方法,而传地址值则是给方法提供参数的地址值。下面我通过例子来验证。
1.值传递(基本数据类型)
public class User1 {
public static void testParameterTransfer01(int u){
u = 6;
}
public static void main(String[] args) {
int a=5 ;
testParameterTransfer01(a);
System.out.println(a);
}
}
程序的执行结果是 “ 5 ”。
a是基本数据类型,对于a来说,传递过去的只不过是a的副本。当程序执行时,首先将a赋值为5,然后再调用testParameterTransfer01()方法的时候,先定义了一个临时的变量u,并将a的值5赋值给u,在函数中将u修改为6,但是a的值并为发生改变。所以输出a时,结果还是5。
接下来看另一种情况。
2.引用传递(引用类型)
public class User1 {
int id; //id
String name; //账户名
public User1(int id,