public class PassByValueEx {
public static void main(String [] args) {
String str[]=new String[2];
str[0]="first";
arr[1]="second";
swap(str[0], str[1]);
System.out.println(str[0] + ", " + str[1]);
swap(str, 0, 1);
System.out.println(str[0] + ", " + str[1]);
}
public static void swap(String s1,String s2){
String temp = null;
temp = s1;
s1 = s2;
s2 = temp;
}
public static void swap(String str[], int index1, int index2) {
String temp = null;
temp = str[index1];
str[index1] = str[index2];
str[index2] = temp;
}
}
这段代码很好的解释了参数传递中pass-by-value与pass-by-reference的区别。注意,数组在Java中实际上是对象,不管这个数组是primitive type还是reference type。