为什么直接使用toString()获取地址值与Arrays.toString()长度不同?

ID:16351 / 打印

为什么直接使用tostring()获取地址值与arrays.tostring()长度不同?

直接toString获取地址值与Arrays.toString()长度不同的原因

当使用str = c.toString();时,实际上调用的是Object类的toString()方法。这是因为char[]数组继承自Object,但没有覆盖toString()方法。因此,直接使用toString()会返回对象的默认字符串表示形式,即类的名称后跟一个@符号,后面是对象的哈希码,类似于[C@15db9742。

相反,Arrays.toString(c)专门用于获取数组元素的字符串表示。它将数组中的每个元素转换为字符串,并使用逗号将其连接起来,返回形式为[9, 0, 1, 0, 0, 0]的字符串。在这个例子中,数组包含7个字符,所以字符串包含7个元素,再加上每个元素的长度,总长度为18。

综上所述,直接使用toString()会返回对象的地址值,因为char[]没有重写Object类的toString()方法。 另一方面,Arrays.toString()返回数组元素的字符串表示,包括元素值及其逗号分隔符,长度等于元素数量加上逗号数量。

上一篇: Spring MVC 遇到 HTTP 500 错误:如何解决 FreeMarkerConfig bean 缺失问题?
下一篇: Java怎么输入一个动态数组

作者:admin @ 24资源网   2024-11-27

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。