黑马程序员技术交流社区

标题: java参数传递值 [打印本页]

作者: loading……99.9    时间: 2013-10-11 17:00
标题: java参数传递值
本帖最后由 loading……99.9 于 2013-10-12 11:45 编辑
  1. public static void main(String[] args)
  2.         {
  3.                 String str = "1111";
  4.                 StringBuffer arg = new StringBuffer("1111");
  5.                 char[]kk = {'q','w','e'};
  6.                 swap(str, arg, kk);
  7.                 System.out.println(str);
  8.                 System.out.println(arg);
  9.                 System.err.println(Arrays.toString(kk));
  10.         }
  11.         public static void swap(String str, StringBuffer arg,char[]kk)
  12.         {
  13.                 str = "bbb";
  14.                 arg.append(333);
  15.                 kk[2] = 'w';
  16.         }
复制代码
输出结果是什么?为什么呢?

作者: hyz123456    时间: 2013-10-11 17:16
1111                    //打印str的索引
1111333               //StringBuffer将333连接到arg的末尾
[q, w, w]              //kk[2] = 'w';将‘w’赋给kk[2];
作者: 赖龙威    时间: 2013-10-11 17:34
1111            //虽然str传入了swap中,但是swap内的str的指向发生了改变。主函数里面的没有
[q, w, w]         //swap里面修改了引用的char[]的值,所以影响到了主函数
1111333        //修改了对象,影响到了主函数

作者: To    时间: 2013-10-12 11:20
楼主你好,如果问题已解决请将帖子状态改为提问结束,如果未解决请继续提问,谢谢合作。




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