最简单的面试题之数组问题(但是大多数人都会做错)

问题:如下代码所示,请问输出结果是什么?

  		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[]进行了遍历.
最后,希望这个解答能帮助大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值