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,也就输出了地址。