数组问题

本文探讨了Java中数组打印时的区别,解释了使用`System.out.println(nums)`和`Arrays.toString(nums)`输出结果不同的原因。主要涉及到对象的toString方法、Integer类的重写以及Arrays.toString()的实现原理。内容涵盖了Java基础与编程实践。
摘要由CSDN通过智能技术生成

int[] nums = {1,2,3,4,5,6};

System.out.println(nums);

System.out.println(Arrays.toString(nums));

打印一个数组,这两句结果为什么不同呢?

因为数据是引用类型啊,打印一个对象默认调用的是其toString()方法,查看Object.toString()方法发现默认调用的是hashCode方法。你可能有疑问Integer,Long之类的不也是引用类型么,为什么我们打印的时候还是其真实值?这是因为他们重写了Object中的toString。java为常用的类都重写了toString,例如我们常见的类都重写了toString,这就是为什么我们直接打印一个set集合或者一个list得到的不是hash码的原因。Arrays.toString()有很多重载的方法,查看Arrays.toString()源码就知道它实际上是输出遍历数组并用中括号将内容包裹起来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值