加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Java中打印char和int数组之间的区别

发布时间:2020-12-14 05:11:34 所属栏目:Java 来源:网络整理
导读:当我运行以下代码我得到数组的地址: int arr[] = {2,5,3};System.out.println(arr); // [I@3fe993 但是当我声明一个字符数组并打印它的方式与数组的实际内容相同.为什么? char ch[] = {'a','b','c'};System.out.println(ch); // abc 解决方法 PrintStream
当我运行以下代码我得到数组的地址:
int arr[] = {2,5,3};
System.out.println(arr); // [I@3fe993

但是当我声明一个字符数组并打印它的方式与数组的实际内容相同.为什么?

char ch[] = {'a','b','c'};
System.out.println(ch); // abc

解决方法

PrintStream类(它是System.out是什么)具有专门的方法重载 println(char[]),它打印字符数组的字符.

它对其他数组没有特殊的重载,所以当你传递一个int []时,被调用的方法是println(Object).该方法通过调用它的toString()方法将传递的对象转换成一个字符串.

所有数组的toString()方法只是一个继承的默认值from class Object,它显示了它们的类名和默认的哈希码,这就是为什么它不是很丰富.您可以使用Arrays.toString(int[])获取int数组内容的字符串表示形式.

附:与文档所说的相反,对象的默认哈希码通常不是对象的地址,而是a randomly generated number.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读