帮忙解答下 谢谢

SARA520 2008-08-21 05:30:32
char ch[]={'H','e','l','l','o'};

System.out.println(ch+"");
System.out.println(ch);

为什么俩个打印的不一样???

还有

public void change(char[] ch)
{
ch[0] = 'h';
}

调用change(ch);后原来的数组中的H会变小写
谁帮忙解释下值传递和引用传递啊
谢谢
...全文
141 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZangXT 2008-08-21
  • 打赏
  • 举报
回复
没有引用传递一说。
aniude 2008-08-21
  • 打赏
  • 举报
回复
System.out.println(ch+"");
使用+的时候ch需要toString()。故输出的是地址

public void change(char[] ch)
{
ch[0] = 'h';
}
传的是地址,当然是可以改变里面的值了
rypgood 2008-08-21
  • 打赏
  • 举报
回复
System.out.println(ch);
这个打印出hello是因为OutputStream里面有这么一个方法println(char[] c)
  • 打赏
  • 举报
回复
值传递
SARA520 2008-08-21
  • 打赏
  • 举报
回复
你试试
System.out.println(ch.toString());

看看打印出什么

先试过再说
别想当然
SARA520 2008-08-21
  • 打赏
  • 举报
回复
楼上

不知所云
mayuanfei 2008-08-21
  • 打赏
  • 举报
回复
System.out.println(ch);打印出的是Hello .因为是调用ch的toStirng()方法。
System.out.println(ch+"");打印出的是地址。 你ch是char的数组,一个数组加一个空字符串你说是什么,根本乱搞嘛。给你打印个地址就不错了。否则就是报错了。
SARA520 2008-08-21
  • 打赏
  • 举报
回复
那System.out.println(ch);

不是调用toString()么???

System.out.println(ch);打印出的是Hello
System.out.println(ch+"");打印出的是地址
zwd2005 2008-08-21
  • 打赏
  • 举报
回复
第一个是ch+""要把ch显式转成string,否则调用的是 ch.toString() + ""; ch是对象

值传递:基本数据类型int, long, char..., 还有String, Integer, Long...
其余的都是引用传递

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧