http://www.bccn.net/Article/kfyy/java/jszl/200601/3069.html
我的个人理解,望各位指正:
1、对于一些基本类型,是传值,“类的对象”,传引用;
2、传引用的型参,public void change(StringBuffer sb){
// 情形1:
sb.append("我改变了");
//情形2:
sb=new StringBuffer("我是新声明的空间");
sb.append("我改变了");
}
public static void main(String[] args) {
Test.TestChange();
StringBuffer b=new StringBuffer(" 我的原来状态");
System.out.println("改变前"+b);
Test.change(b);
System.out.println("改变后:"+b);
}
运行结果:
改变前 我的原来状态
改变后: 我的原来状态我改变了
change(b) 中的b其实是一个指向b的引用;情形1时:引用与b 为同一个,所以改变了,
情形2时:引用被改变了,与b不再是同一个引用,所以sb 怎么变都与之无关了.