有关java二维数组的赋值

有关二维数组的赋值

public class HelloWorld {
public static void main(String[] args) {

    // 定义两行三列的二维数组并赋值
    String [][] names = new String[2][3];
    names = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};

    // 通过二重循环输出二维数组中元素的值
    for (int i = 0; i < names.length    ; i++) {

        for (int j = 0; j < names[i].length; j++) {
            System.out.println(names[i][j]);
            System.out.println(                  );
        }

        System.out.println();
    }
}

}
这么写在赋值那个地方报错了,不明白为什么是错的,我先声明并分配空间以后再赋值不可以么?
辛苦大家教教我这个菜鸟~~~

= =没有names={{}}这样纸赋值数组的

数组常量只能 用于初始化

public static void main(String[] args) {
// 定义两行三列的二维数组并赋值
String [][] names = new String[2][3];
String [][] temp = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
names = temp;

    // 通过二重循环输出二维数组中元素的值
    for (int i = 0; i < names.length    ; i++) {

        for (int j = 0; j < names[i].length; j++) {
            System.out.println(names[i][j]);
            System.out.println(                  );
        }

        System.out.println();
    }
}

这样定义:

        // 定义两行三列的二维数组并赋值
        //String [][] names = new String[2][3];
        String[][] names = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};

或者这样写:

 // 定义两行三列的二维数组并赋值
        String [][] names = new String[][]{{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};

这是定义的时候初始化
你上面的那种写法 new String[2][3]已经分配了内存空间,所以不能再这样初始化了,只能单个初始化每个数组元素。

因为你new了之后就初始化了(。具体你可以去看 堆栈内存
String [][] names = new String[2][3];
String [][]temp = {{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
names=temp;
这样写就可以了。