2 xiangyanglyz Xiangyanglyz 于 2016.04.05 07:08 提问

字符数组输出字符还是地址的问题

为什么char[] c=new char[]{‘a’,’b’,’c’};System.out.println(c);输出的不是地址,而是abc

9个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.05 09:25
已采纳

这是println方法重载。java打印输出System.out.println会调用输入参数的toString方法,输出内容是toString方法的返回值
println的参数分基本类型,String和Object类型

Xiangyanglyz
Xiangyanglyz 回复小灸舞: 谢谢
一年多之前 回复
AEWW922
AEWW922   2016.04.05 08:54

System.out 是一个 PrintStream 对象,你看看文档,有 print(char[]) 和 println(char[]) 方法,但没有 print(int[]) 或者 println(int[]) 方法。

CSDNXIAOD
CSDNXIAOD   2016.04.05 07:11

字符数组的输出问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

sj18182656342
sj18182656342   2016.04.05 08:29

基本数据类型分 和 已用的类型是不一样的!

sj18182656342
sj18182656342   2016.04.05 08:29

基本数据类型分 和 已用的类型是不一样的!

qq_33521800
qq_33521800   2016.04.05 08:36

println
public void println(char[] x)
打印字符数组,然后终止该行。此方法的行为就像先调用 print(char[]) 然后调用 println() 一样。
参数:
x - 要打印的字符数组。

print
public void print(char[] s)
打印字符数组。按照平台的默认字符编码将字符转换为字节,并完全以 write(int) 方法的方式写入这些字节。
参数:
s - 要打印的字符数组
抛出:
NullPointerException - 如果 s 为 null

starsky_xkl
starsky_xkl   2016.04.05 08:36

这很正常,你输出&c就会输出第一个元素的地址了。

xiaochaolovedan
xiaochaolovedan   2016.04.05 09:27

我觉得问题就在于system.out.println(c); println方法输出的是字符。println方法输出字符数组的时候默认调用了toString方法,将整个数组的内容进行了输出。

kaka20099527
kaka20099527   2016.04.05 15:19

这个是jdk实现的问题,数组的toString方法都是打印地址,jdk特殊处理了字符数组而已

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!