题目: System.out.println(a+","+b); 的值为什么
class Client_port{
public static void main(String[] args){
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operate(a,b);
System.out.println("a为"+a);
System.out.println("b为"+b);
System.out.println(a+","+b);
}
public static void operate(StringBuffer x, StringBuffer y){
x.append(y);
y=x;
System.out.println("y为"+y);
}
}
结果:
看到这个答案是疑惑的,应该为AB,AB,查阅资料后这是引用类型。下面解释:
a指向A,b指向B,
operate():x指向A,y指向B----------------调用方法:x指向AB,y指向了X为AB
之后:a指向的值变成了AB,b指向的还是B