直接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()长度不同?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号