值传递:
方法调用时,实际参数把对应的值传递给对应的形式参数,方法执行中形式参数的值的改变不会影响到实际参数的值。
比如一个方法:
public static void print(int i){
System.out.println(i*2);
}
我调用print方法,传参数:5 : print(5);
这样程序就不会改变这个值了。
引用传递:
也称为传地址,方法调用时,实际参数的引用(地址,在内存中指向的地址,而不是参数的值)被传递给方法中对应的形式参数,在方法执行中,对形式参数的操作实际上
就是对实际参数的操作,方法执行中形式参数值的改变会影响实际参数的值。
比如:
public static void changeUser(User u){
u.setName("china");
}
这样,实际参数的值也会改变,因为传过来的是一个对象在内存里面的地址,在方法里面修改是直接修改内存里面的值。