发布于2026-07-05 阅读(0)
扫一扫,手机访问
先说一个很常见的坑:直接用 System.out.println(arr) 打印数组,出来的结果就是 [Lja va.lang.String;@1b6d3586 这种哈希值,完全看不出里面装了什么。真正让调试变得高效的工具,是 Arrays.toString(arr)——专为“一眼看清数组”设计。

它自动处理所有基本类型(int[]、char[]、boolean[] 等)和引用类型(String[]、User[]),格式统一、安全可靠:
[1, 2, 3] 或 [a, b, c]null 时返回字符串 "null",不抛异常null(如 new String[]{null, "ok"})会如实显示为 [null, ok]toString(),否则仍显示 ClassName@hashArrays.toString() 对多维数组无效——它只展开第一层,内部仍是地址。要真正看清嵌套结构,得用 Arrays.deepToString():
[[1, 2], [3, 4, 5]] 或 [[x], [y, z]]Object[] mixed = {"a", new int[]{1,2}, new String[]{"x"}} → [a, [1, 2], [x]]null 会直接抛 NullPointerException,建议先判空:arr == null ? "null" : Arrays.deepToString(arr)光会调用还不够,结合场景才能避免踩坑、提升效率:
log.debug("items = {}", Arrays.toString(items)),避免字符串提前拼接Arrays.toString(Arrays.copyOf(arr, Math.min(10, arr.length))) 截取前若干项System.out.println("config keys = " + Arrays.toString(keys)),方便快速定位Arrays.toString() 和 deepToString() 是调试利器,但有明确边界:
Person.scores),deepToString 不自动穿透;需在 Person.toString() 中手动调用
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8