问一个基础问题 关于数组的

String[][] rs=new String[100][];
String[] temp=new String[10];
。。。。。。
String[1]=temp;




这个JVM是怎么构造对象的?

[quote]String[] rs=new String[];先不指定数组个数,这样是可以的[/quote]
错误,必须指定数组大小。
String[] rs = new String[10];咱们来分析一下这句。
这句代码一共做了三件事。
1.在堆中创建了一个十个长度的String数组对象。
2.在栈中创建了一个String数组的引用rs。
3.令rs指向数组对象。

如果这样 String[] rs;则编译器不允许指定数组的大小。这样只是创建了一个
数组的引用(为引用分配了空间)。并没有给数组对象分配任何的空间。

String[] rs=new String[];先不指定数组个数,这样是可以的,你应该能理解,声明String类型的数组,后面可根据需要实例,如rs[0]="java";rs[1]="china"等等,同理声明二维数组String[][] rs=new String[100][]; 第一维是必须的,就相当于100个String类型的数组,至于每一维数组几个元素同样根据需要实例,如
rs[0][5]则第一维五个元素,rs[50][15]则第五十维15个元素。体会一下,

java 的多维数组实际上就是一维数组的特例。

二维数组的声明 new String[100][] 会在栈中分配一个连续的空间,没一段内存地址只能用来存放 字符串数组的引用。

至于多少维 这个标识由JVM自行管理。 比如赋值的正确 公式只能是 n-1维赋给N维

不能跨级别 两维之间不能超过1