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