java中只有传值
package sinosoft;
import org.junit.Test;
public class PassValueTest {
    
    /**
     * 运行结果是
     *  Hello World!
        hi World!
        Hello World!
        要理解这点,就要理解在Java中只有传值
        对于参数传递,如果是简单数据类型,那么它传递的是值拷贝,
        对于类的实例它传递的是类的引用的拷贝
        
        对类来说:引用与引用的拷贝都指向对象的同一个内存块,因此对引用操作,引响的是同一个对象
        但像chang方法中,对引用的拷贝重新赋给一个对象,那就与原先对象无关了。自然不会影响到原先对象
     */
    @Test
    public void test(){
        StringBuffer bf = new StringBuffer("Hello World!");
        System.out.println(bf.toString());
        
        change(bf);
        
        System.out.println(bf.toString());
    }
    
    public void change(StringBuffer bf){
        bf = new StringBuffer("hi");
        bf.append(" World!");
        
        System.out.println(bf.toString());
    }      
}