代码如下
public static void main(String[] args)
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
op(a, b);
System.out.print(a+","+b); static void op(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}
问题:输出为什么不是AB,AB而是AB,B
public static void main(String[] args)
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
op(a, b);
System.out.print(a+","+b); static void op(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}
问题:输出为什么不是AB,AB而是AB,B
有两种类型的参数:一种是基本数据类型;一种是对象引用(传进来的是对象引用的拷贝)
有以下特性:
1。一个方法不能修改基本数据类型参数
2。可以改变对象参数的状态
3。不能让对象参数引用一个新对象。
x.append(y);这里就是第二点吧,可以改变对象参数的状态
y=x;这就是第三点,不能让对象参数引用一个新对象,不能让y引用x