例子:
public static void main(String[] args) {
StringBuffer stra = new StringBuffer("A");StringBuffer strb = new StringBuffer("B");
changed(stra, strb);
System.out.println(stra + " " + strb);
}
public static void changed(StringBuffer a, StringBuffer b) {
b.append(a);
}
1.值传递的本质是才在传递引用类型的参数时,传的并非值的本身,而是该值的所在地址。
2.值传递过程中,对形参的值做修改,实参的值也会发生同样的改变。
3.这点我认为比较容易混淆,在值传递过程中,形参和实参是两个对象,只是两个对象同时引用一个地址,当对其中一个对象做修改的时候,
另一个对象也会发生同样的修改(前面这段我相信大家都比较明白),容易混淆的是,当改变其中一个对象的引用地址时,那么这两个对象就已经没有关联了,
不要认为另一个对象跟着改变引用地址。