Java二维数组的length是预分配的固有属性,行数为array.length,列数需通过array[0].length获取且须判空;锯齿数组每行列数独立,动态构建需先声明外层数组再逐行初始化。

Java 二维数组没有“动态计算长度”的过程,它的 length 是对象自带的属性,直接读取即可——关键在于理解它反映的是已分配的结构维度,不是运行时统计出来的结果。
二维数组的行数与列数怎么取
二维数组本质是“一维数组的数组”,所以:
-
行数:用
array.length,即外层数组的元素个数 -
列数:用
array[0].length,前提是第一行不为null - 如果各行长度不同(锯齿数组),每行列数要单独查:
array[i].length
不规则二维数组的安全访问方式
声明如 int[][] jagged = new int[3][]; 后,jagged[1] 可能还是 null。直接调用 jagged[1].length 会抛出 NullPointerException。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 判空再取长:
if (jagged[i] != null) len = jagged[i].length; - 遍历时推荐增强 for 循环 + 显式判空:
for (int[] row : jagged) { if (row != null) { ... } }
动态构建二维矩阵的常见模式
所谓“动态构建”,是指运行时根据输入或逻辑确定尺寸并填充数据,不是靠反射或运行时计算长度。
立即学习“Java免费学习笔记(深入)”;
- 先定行数,列数可统一也可逐行指定:
int[][] mat = new int[rows][];,再为每行mat[i] = new int[cols_i]; - 从用户输入初始化:
Scanner sc = new Scanner(System.in); for (int i = 0; i - 随机填充示例:
mat[i][j] = (int)(Math.random() * 100);
别混淆 length、length() 和 size()
这是编译期就报错的高频陷阱:
- 数组 →
arr.length(属性,无括号) - 字符串 →
str.length()(方法,带括号) - List/Set 等集合 →
list.size()(方法,不是length) -
arr.length()或list.length直接无法通过编译

















