首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

帮忙解答下 多谢

2011-12-29 
帮忙解答下 谢谢char ch[]{H,e,l,l,o}System.out.println(ch+)System.out.println(ch)为

帮忙解答下 谢谢
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会变小写
谁帮忙解释下值传递和引用传递啊
谢谢

[解决办法]
第一个是ch+""要把ch显式转成string,否则调用的是 ch.toString() + ""; ch是对象

值传递:基本数据类型int, long, char..., 还有String, Integer, Long...
其余的都是引用传递
[解决办法]
System.out.println(ch);
这个打印出hello是因为OutputStream里面有这么一个方法println(char[] c)
[解决办法]
System.out.println(ch+"");
使用+的时候ch需要toString()。故输出的是地址

public void change(char[] ch) 

ch[0] = 'h'; 

传的是地址,当然是可以改变里面的值了

热点排行