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

为什么直接使用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()返回数组元素的字符串表示,包括元素值及其逗号分隔符,长度等于元素数量加上逗号数量。

以上就是为什么直接使用toString()获取地址值与Arrays.toString()长度不同?的详细内容,更多请关注其它相关文章!