Java 二维空阵列如何工作?

Java 二维空阵列如何工作?,java,arrays,Java,Arrays,我无法理解以下代码: String [][] abc = new String [4][]; public static void main(String args[]) { String [][] abc = new String [4][]; for (int i = 0; i < abc.length; i++) { System.out.println("Element " + i + " has value " + abc[i

我无法理解以下代码:

String [][] abc = new String [4][];
    public static void main(String args[]) {
      String [][] abc = new String [4][];
      for (int i = 0; i < abc.length; i++) {
          System.out.println("Element " + i + " has value " + abc[i]);
      }
    }


这会创建4行的二维数组,但每行都是空的吗?是否为每行指定了初始值?如果每行获得特定数量的行,初始值是多少?

它将创建一个2d数组,每行将为
null
。以下代码:

String [][] abc = new String [4][];
    public static void main(String args[]) {
      String [][] abc = new String [4][];
      for (int i = 0; i < abc.length; i++) {
          System.out.println("Element " + i + " has value " + abc[i]);
      }
    }

这会创建4行的二维数组,但每行都是空的吗

它将创建4行的二维数组

是否为每行指定了初始值

默认情况下,每一行都是
null

如果每行获得特定数量的行,那么初始值是多少 价值是什么

每行可以有不同数量的元素

示例程序:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[][] abc = new String[4][];
        for (String[] s : abc)
            System.out.println(s);

        // You can initialize in this way
        abc[0] = new String[] { "Sam", "John", "Chris" };

        String[] str = { "ab", "bc", "cd", "ef" };
        // You can initialize also in this way
        abc[1] = str;

        // You can initialize also in this way
        abc[2] = new String[2];
        abc[2][0] = "Hello";
        abc[2][1] = "World";

        abc[3] = new String[4];

        for (String[] s : abc)
            System.out.println(Arrays.toString(s));
    }
}
null
null
null
null
[Sam, John, Chris]
[ab, bc, cd, ef]
[Hello, World]
[null, null, null, null]
输出:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[][] abc = new String[4][];
        for (String[] s : abc)
            System.out.println(s);

        // You can initialize in this way
        abc[0] = new String[] { "Sam", "John", "Chris" };

        String[] str = { "ab", "bc", "cd", "ef" };
        // You can initialize also in this way
        abc[1] = str;

        // You can initialize also in this way
        abc[2] = new String[2];
        abc[2][0] = "Hello";
        abc[2][1] = "World";

        abc[3] = new String[4];

        for (String[] s : abc)
            System.out.println(Arrays.toString(s));
    }
}
null
null
null
null
[Sam, John, Chris]
[ab, bc, cd, ef]
[Hello, World]
[null, null, null, null]

你有没有试过,看看会发生什么?