当前位置: 代码迷 >> Java相关 >> 关于String跟StringBuffer的困惑
  详细解决方案

关于String跟StringBuffer的困惑

热度:7   发布时间:2016-04-22 21:10:24.0
关于String和StringBuffer的困惑
最近学习Java关于String和StringBuffer有点困惑,求指点
public class Runstr {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operator(a, b);
System.out.println(a + "," + b);


}

static void operator(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;

}

}

这里的b的值为什么没有改变???这是不是说明在参数传递方面StringBuffer和String是一样的,都是重新指向一个新的对象,两者区别仅仅是StringBuffer可以被修改?
------解决方案--------------------
基本类型传值,引用类型传引用。不管是哪种,对于方法参数y,用 y = xxx 来给y赋值肯定是影响不到外面的
------解决方案--------------------
进入operator函数的参数只是a和b的两个copy,所以不管函数里面发生什么都和外面没关系的
  相关解决方案