黑马程序员技术交流社区

标题: 为什么结果和我想的不一样 [打印本页]

作者: 曹冬明    时间: 2014-4-15 02:16
标题: 为什么结果和我想的不一样
本帖最后由 曹冬明 于 2014-4-16 21:17 编辑
  1. public class TestDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 StringBuffer a = new StringBuffer("a");
  6.                 StringBuffer b = new StringBuffer("b");

  7.                 append(a,b);
  8.                
  9.                 System.out.println(a.toString()+","+b.toString());

  10.                 b = a;

  11.                 System.out.println(a.toString()+","+b.toString());
  12.         }

  13.         public static void append(StringBuffer a,StringBuffer b)
  14.         {
  15.                 a.append(b);
  16.                 b = a;
  17.         }
  18. }
复制代码


为什么跟我想的结果,不一样,求解释
作者: 榨菜    时间: 2014-4-15 02:26
  1. public static void append(StringBuffer a,StringBuffer b)
  2.         {
  3.                 a.append(b);
  4.                 b = a;   // 这个方法调用完后 这里的a,b是方法内部的引用和外部的a,b没有关系。当方法执行完后,a,b在栈中都会被擦除。 这句相当于废话。
  5.         }
复制代码


所以 你把函数里面的b=a删除 ,再考虑试试,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2