java中,char类型数组直接打印数组名,打印结果是其内容,而其他数组打印出来是地址

char[] a=new char[20];
int[] b=new int[10];
boolean[] c=new boolean[10];
System.out.println(a);
System.out.println(b);
System.out.println(c);

输出结果为
在这里插入图片描述
可以看到,第一行为空,没有输出地址(因为char数组初始化都是空)。
原因:
println()中有两个方法,一个是println(char[] x)println(Object x)
当是char数组时,调用第一个,进入这个方法里面
在这里插入图片描述
然后再看一下print(x);
在这里插入图片描述
再进入write(s);
在这里插入图片描述
虽然不太理解,但可以想到应该是将char数组的值全部输出了。

当传入int数组时,调用的是println(Object x),
在这里插入图片描述
里面有这么一个语句String s = String.valueOf(x);
而valueof里面写的是
在这里插入图片描述
也就是说,除了char数组,其他类型数组最后都会调用obj.toString,也就输出了地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值