实参向形参的传递是值的传递。如果实参指向的是一个对象,实参的值就是地址的值。
package test;
import java.util.ArrayList;
public class Test {
public static void main(String[] args){
String[] a=new String[10];
System.out.println("执行前,实参指向的地址"+a);
test(a);
System.out.println("执行后,实参执行的地址"+a);
}
public static void test(String[] params){
System.out.println("形参改变指向前,形参指向的地址"+params);
params=new String[10];
System.out.println("形参改变指向后,形参执行的地址"+params);
}
}
也就是参数传递是地址值的一个复制。形参实参都指向同一个对象,只要不修改形参的指向,即不重新new一个对象,那形参操作的对象就是实参指向的对象,如果重新new一个新对象出来,让形参指向他,那它操作的就是新对象了,而不再是原来的对象了。