Java引用数据类型数组直接打印为何是数据值??

问题描述:

引用数据类型数组,直接打印为啥得到的是数据值?不应该是数据在堆内存中的地址吗?数组并没有重写toString方法呀?

 

char类型的数组就相当于一个字符串。

因为输出流System.out是PrintStream对象,PrintStream有多个重载的println方法,其中一个就是public void println(char[] x);

直接打印字符数组的话,不像int[]等其他数组,它会直接调用这个方法来打印,因而可以打印出数组内容,而不是地址。

char类型的数组就相当于一个字符串。
因为输出流System.out是PrintStream对象,PrintStream有多个重载的println方法,其中一个就是public void println(char[] x),直接打印字符数组的话。
int[]等其他数组需要以object类型传入,目的是调用obj的toString()方法转换成字符串。
char[]相当于一个字符串,不用再以object类型进入,跳过转换字符串这一步,它会直接打印,因而可以打印出数组内容,而不是地址

你可以查看底层代码对比一下就知道了

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632