rt

解决方案 »

  1.   

    二维数组可以看成是一个关于一维的一维数组  a[][]={a[],a[],a[].......};a[]={a[][],a[][],......};
    一维数组的内存地址分配是连续分配的,由此可以推出二维数组的内存地址分配情况
      

  2.   

    其实java中没有多维数组,只有一维数组,多维数组被解释为数组的数组
      

  3.   

    嗯,这个在《Java核心技术》中提到过。
      

  4.   

    java 中没有一维数组,但可以用一维数组实现二维或者是多维数组。
    一维数组在内存中是利用一段连续的空间存放,都是相对于起始位置的偏移量。
    如果起始位置 为0 数据类型为 int 那么第一个单元就要占用连续的4个字节 那个第二个元素就从5开始存储 
    有如下公式 x内存中的起始位置 L 数据类型的长度(字节) i 为数组下标 有如下关系  x+(i*L) = 内存中的位置
    一般二维数组在内存的存储形式都转化为一维数组的存储形式,分别有二种方式, 一种是以行优先存储,另一种是以
    行优先存储。 那么如何确定二维数组任意下标元素在内存中的位置呢,例如有一个 int 型的二维数组 
     以行优先存储的位置可依如下公式计算 x + [(i*R)+j]*L 
     以列优先存储的位置可依如下公式计算 x + [(j*C)+c]*L 
     注: x为内存起始位置, i j 为数组下标如 list[i,j]  R 为一行当中元素的个数 C为一列当中元素的个数 注:以行优先存储 是把二维数组按行一行接着一行的形式取出连续存入一块连续的内存空间的形式。
         以列优先存储 是把二维数组按列一列接着一列的形式取出连续存入一块连续的内存空间的形式。