记录主机体验,分享建站经验RSS 订阅 ↗

Java 数组打印:Arrays.toString 与 deepToString

一维数组:优先使用 Arrays.toString()

直接 System.out.println(array) 不是打印元素列表,而是输出数组对象的默认表示。日志调试中要看元素,应明确格式化。

import java.util.Arrays;
class Demo {
  public static void main(String[] args) {
    int[] nums = {3, 8, 1};
    int[][] matrix = {{1, 2}, {3, 4}};
    System.out.println(Arrays.toString(nums));
    System.out.println(Arrays.deepToString(matrix));
  }
}

多维数组与复杂对象

二维及不规则嵌套数组可用 Arrays.deepToString();只有第一层的 Arrays.toString() 往往不能显示内部各子数组。包含自定义对象时,输出质量取决于对象的 toString(),不要在生产日志中意外打印密码、令牌和个人数据。

如何选择输出方式

临时调试直接使用 Arrays 工具类;面向用户的长列表推荐流式分页或结构化序列化。性能比较需要固定数组规模、JVM 预热与一致的输出目标,不能因代码更短就推断更快。

Java 数组输出的三种不同语义

import java.util.Arrays;
int[] values = {1, 2, 3};
int[][] matrix = {{1, 2}, {3, 4}};
System.out.println(Arrays.toString(values));
System.out.println(Arrays.deepToString(matrix));
System.out.println(matrix); // 不是二维数组的可读内容

Arrays.toString() 适合一维原始类型或对象数组;多维对象数组通常要用 deepToString()。对于超大数组,直接全量日志打印容易造成磁盘、CPU 与敏感信息泄露问题:应限制采样行数、掩码隐私字段,或者输出统计摘要。Arrays.toString(char[]) 等也应在含密钥时谨慎使用。

相关教程与进一步检查

若需要继续处理实际环境中的关联问题,可阅读Java Math.max 用法;Java Web 请求处理可帮助补充不同的选型或验收视角。两者属于独立问题,按当前环境自行核对适用版本。