pass-by-value与pass-by-reference的区别一个很好的例子

来源:互联网 发布:java .class 编辑:程序博客网 时间:2024/06/10 04:16

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。