首先,Java中的函数传参只有值传递,不存在其他的形式
如果是传递基本数据类型,那没什么好说的,传的是值。
如果是传递的对象,传递的也是值,这个“值”是该对象的引用的副本,本质上是一个内存地址。
举例如下:
public static void main(String[] args) {
String s = "aaa";
change(s);
System.out.println(s);
}
public static void change(String s){
s="bbb";
}
在函数change(String s)中的s是main方法中s的一个副本,当执行代码s="bbb"时,只是将s这个副本从指向"aaa"变成指向字符串常量池中的"bbb",对于main中的s,并没有影响,它依然指向"aaa"。