先看代码

public class StringBuffera {

public static void main(String[] args)

{

StringBuffer bf1 = new StringBuffer(“hello”);

StringBuffer bf2 = new StringBuffer(“java”);

test(bf1,bf2);

System.out.println(bf1+”….”+bf2);




}

public static void test(StringBuffer bf1,StringBuffer bf2)

{

   bf1.append(bf2);

   bf1=bf2;


   System.out.println(bf1+”….”+bf2);

}

}

输出结果为java….java

                 hellojava….java

这时候问题就来了,为什么在主方法的打印结果里 bf1等于hellojava(bf1调用test后的结果)。却不等于bf2将引用传给bf1的值呢?   原来啊StringBuffer属于String的增强版,StringBuffer bf2这里是局部变量,将bf1=bf2只能在test这个方法里生效,这个test方法结束后,变量就消失了,所以并不影响主方法的打印结果


版权声明:本文为qq_41885010原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41885010/article/details/80571880