问题:如下代码所示,请问输出结果是什么?
int[] arr1 = new int[]{1,2,3};
System.out.println(arr1);
char[] arr2 = new char[]{'a','b','c'};
System.out.println(arr2);
或许大多数人都认为这也太简单了吧!
心想结果不就是输出的是地址值嘛
其实,正确的结果是:
为什么会出现这样的结果呢?
首先,我带大家来看一下PrintStream里面所有的方法结构
我发现调用的System.out.println(arr1);方法实际上是PrintStream里的println(Object)方法,而System.out.println(arr2);实际上调用的是PrintStream里的println(char[])方法.
那为什么调用PrintStream里的println(char[])方法会输出abc这样的结果呢?
我带大家看一下这个方法的源码就一目了然了
原来在这个方法中对char[]进行了遍历.
最后,希望这个解答能帮助大家!