对于基本类型,传递的是基本类型的值,而对于引用类型传递的是引用的拷贝,所以传递的都是值。
引用传递参考C++,在C++中调用函数时传递引用,若该引用在函数内部发生改变(引用了其他对象),原引用也会发生改变,而Java不会。
public class Test {
static void fun(String s) {
s = new String("b");
}
public static void main(String[] args) {
String s = new String("a");
fun(s);
System.out.println(s);
}
}/* output:
a
*///:~
在传递引用类型s时,其实也就是某个对象(字符串a)的地址值,在函数内部通过这个地址值向这个对象发送消息,而该引用s一直会指向这个对象。