17370845950

浅析Java方法传值和传引用问题
某门户网站的一道笔试题
复制代码 代码如下:
public class Test {
    public static void stringUpd(String str) {
        str = str.replace("j", "l");
        System.out.println(str);
    }   
    public static void stringBufferUpd(StringBuffer bf) {
        bf.append("c");
        System.out.println(bf);
    }   
    public static void main(String[] args) {

        /**
         * 對於基本類型和字符串(特殊)是傳值
         * 
         * 輸出lava,java
         */
        String s1 = new String("java");
        stringUpd(s1);
        System.out.println(s1);

         

        /**
         * 對於對象而言,傳的是引用,而引用指向的是同一個對象
         * 
         * 輸出javac,javac
         */
        StringBuffer bb = new StringBuffer("java");
        stringBufferUpd(bb);
        System.out.println(bb);

    }

}