应使用 arrays.tostring() 或 arrays.deeptostring() 打印数组;前者适用于一维数组,自动格式化并安全处理 null,后者递归处理多维数组,避免显示哈希值。

Java 中直接打印数组会输出类似 [Ljava.lang.String;@1b6d3586 这样的哈希值,毫无可读性。用 Arrays.toString() 是最简单、最常用、也最推荐的格式化输出方式。
为什么 Arrays.toString 比直接打印更实用
它把一维数组转成易读的字符串形式,比如 [apple, banana, cherry],括号、逗号、空格都自动处理好,不需手动拼接。底层调用了每个元素的 toString() 方法,对 null 也能安全显示为 null,不会抛 NullPointerException。
基本用法:一维数组快速输出
适用于 int[]、String[]、Object[] 等所有一维数组类型:
-
int[] nums = {1, 2, 3}; System.out.println(Arrays.toString(nums));→ 输出[1, 2, 3] -
String[] fruits = {"apple", null, "cherry"};→ 输出[apple, null, cherry] - 注意:必须导入
java.util.Arrays,否则编译报错
多维数组怎么办?用 Arrays.deepToString
Arrays.toString() 对二维数组只显示内层数组的引用地址,例如 [[I@abc123, [I@def456]。此时应改用 Arrays.deepToString():
int[][] matrix = {{1, 2}, {3, 4}};-
System.out.println(Arrays.deepToString(matrix));→ 输出[[1, 2], [3, 4]] - 它会递归处理每一层,支持任意嵌套深度(如三维、四维),且同样兼容
null
调试时的小技巧:结合日志或断点快速查看
在 IDE 调试中,把 Arrays.toString(arr) 放入“Evaluate Expression”窗口,能即时看到内容;写单元测试或 main 方法时,也建议统一用它替代 System.out.println(arr):
- 避免误以为数组为空——实际可能是没正确打印
- 便于复制粘贴到文档或协作沟通中,格式清晰无歧义
- 和
Arrays.equals()、Arrays.fill()等配合使用,形成一致的数组操作习惯
不复杂但容易忽略。养成用 Arrays.toString()(或 deepToString)的习惯,能让 Java 数组调试和展示省心又专业。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











