int[][] a=new int[100][2];
int[][] b=new int[2][100];
数组a、b在内存中哪个占的大?为什么?

解决方案 »

  1.   

    不懂,同时建议lz不要在这种问题上纠缠,对你学java暂时没什么用.
      

  2.   

    对~学数组最主要就是学会如何定义和编程~无论java\C#都一样!
      

  3.   

    在c/c++中是一样大的,是200个连续的int变量的空间。java中应当也是一样的。
      

  4.   

    这两个数组在内存中的分页情况大致就是这样的。+-----------+      
    |     a     | ---> +-----------+
    +-----------+      |  len = 2  |
                       +-----------+
                       |    a[0]   | --------------------> +-----------+
                       +-----------+                       |  len=100  |
                       |    a[1]   | ---> +-----------+    +-----------+
                       +-----------+      |  len=100  |    |  a[0][0]  |
                                          +-----------+    +-----------+
                                          |  a[1][0]  |    |  a[0][1]  |
                                          +-----------+    +-----------+
                                          |  a[1][1]  |    |    ...    |
                                          +-----------+    +-----------+
                                          |    ...    |    |  a[0][99] |
                                          +-----------+    +-----------+
                                          |  a[1][99] |
                                          +-----------++-----------+
    |     b     | ---> +-----------+
    +-----------+      | len = 100 |
                       +-----------+
                       |    b[0]   | ------------------------------------> +-----------+
                       +-----------+                                       |  len = 2  |
                       |    b[1]   | --------------------> +-----------+   +-----------+
                       +-----------+                       |  len = 2  |   |  b[0][0]  |
                       |    ...    | ---> ...              +-----------+   +-----------+
                       +-----------+                       |  b[1][0]  |   |  b[0][1]  |
                       |   b[99]   | ---> +-----------+    +-----------+   +-----------+
                       +-----------+      |  len = 2  |    |  b[1][1]  |
                                          +-----------+    +-----------+
                                          |  b[99][0] |
                                          +-----------+
                                          |  b[99][1] |
                                          +-----------+b[100][2] 要比 a[2][100] 所占用的空间多。
      

  5.   

    支持楼上的,java中数组是按照对象来存的,所以可以对数组进行边界检查,在c/c++中是不可以的。
      

  6.   

    表示长度的len=2,len=100也有占用空间吗?
      

  7.   

    对啊,否则 b.length 这里的数据是从哪里来的呢?