public class Foo {
/** Creates a new instance of Foo */
public Foo() {
}
public static void main(String args[]){
1 //StringBuffer a=new StringBuffer("AA");
//StringBuffer b=new StringBuffer("BB");
2 //String a=new String("AA");
//String b=new String("BB");
3 String a="AA";
String b="BB";
operate(a,b);
System.out.println(a+"__"+b);
}
static void operate(String x,String y){
1.//x.append(y);
2和3 x+=y;
y=x;
}
}
如果是1输出是AABB_BB
2,3输出是AA_BB
这个1是为什么?
对象的引用因该是不变的呀。
如果是因为对象变了的话,那2,3之中的对象也变了呀。还是因为是String类是不可改变的原因?
还是因为内存的原因?
/** Creates a new instance of Foo */
public Foo() {
}
public static void main(String args[]){
1 //StringBuffer a=new StringBuffer("AA");
//StringBuffer b=new StringBuffer("BB");
2 //String a=new String("AA");
//String b=new String("BB");
3 String a="AA";
String b="BB";
operate(a,b);
System.out.println(a+"__"+b);
}
static void operate(String x,String y){
1.//x.append(y);
2和3 x+=y;
y=x;
}
}
如果是1输出是AABB_BB
2,3输出是AA_BB
这个1是为什么?
对象的引用因该是不变的呀。
如果是因为对象变了的话,那2,3之中的对象也变了呀。还是因为是String类是不可改变的原因?
还是因为内存的原因?
static void operate(String x,String y){
1.//x.append(y);
2和3 x+=y;
y=x;
}
中不可能调用x.append(y);