对于值传递,拷贝的值用完之后就会被释放,对原值没有任何影响。
对于引用传递,拷贝的是对象的引用,和原值指向的同一块地址,即操作的是同一个对象,所以操作之间会相互影响。
public class Test {
String str = "string";
static String str0 = new String("new string");
int num = 1;
char[] ch = {'1','2','3'};
char[] ch1 = {'a','b','c'};
public static void main(String [] args){
Test test = new Test();
test(test.str,test.num,test.ch,test.ch1);
for(char chr : test.ch){
System.out.println(chr);
}
System.out.println(test.str);
System.out.println(str0);
System.out.println(test.num);
}
public static void test(String str,int num,char[] ch,char[] ch1){
ch[0] = 'a';
str = "string1";
str0 = "new string0";
num = 2;
ch = ch1;
for(char chr :ch){
System.out.println(chr);
}
}
}
运行结果如下: