A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹冬明 中级黑马   /  2014-4-15 02:16  /  498 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曹冬明 于 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. }
复制代码


为什么跟我想的结果,不一样,求解释

评分

参与人数 1黑马币 +1 收起 理由
zzkang0206 + 1 你是怎么想的

查看全部评分

1 个回复

倒序浏览
  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删除 ,再考虑试试,

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马