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