浅析Java方法传值和传引用问题

时间:2021-12-26 10:35:30

某门户网站的一道笔试题

复制代码代码如下:


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); 

    } 

}