为什么输出语句括号里写a[j]输出正常,但括号里写a输出的地址呢

为什么输出语句括号里写a[j]输出正常,但括号里写a输出的地址呢?第三张图里却正常输出,还是从A开始,逐步把26个字母输完的呢?

img

img

img

因为a[j]表示是输出a数组元素的值,而a是输出数组
System.out.println(a); 调用的是 PrintStream类的 println(Object x) 方法,最终会调用String.valueOf(x)方法,然后调用object的 toString方法,返回值是这个
return getClass().getName() + "@" + Integer.toHexString(hashCode()); 比如 [I@5419f379 这种
但是 下边输出字符数组的调用的是PrintStream类的 println(char x[]) 方法,直接 通过write(s);写字符的,所以两种结果不一样