看了几本书,这样理解java二维数组,type[]  ,让type为int[], 可是这样我就很难理解数组的动态初始化:即要把维数定下来,如:int[] abc = new int[5]中的5,如果那样的话二维数组的动态初始化应该是int[][] = new int[][5];而不是new int[5][],当我们打出数组的Class对象名时看到的也是先“[”后“类型”,所以,我想是不是java数组实际定义应该是[]int,而不是int[],只不过是为了照顾习惯或者别的什么原因规定为int[]。
本人愚笨,又是初学者,学也学不会,希望大家批评指导。

解决方案 »

  1.   

    二维数组就是:一个值是数组的一维数组,int[][] = new int[5][]是定义了一维数组的长度,而这个一维数组的值还是数组。
      

  2.   

    int[] abc = new int[5];5不是维数.而是长度,[]才是,[][]这是二维
      

  3.   

    个人感觉java对数组支持并不怎么好,而对HashMap有更好的支持
      

  4.   

    java没有多维数组的概念。java数组都是动态创建的,所以类型的表示才比较奇特。
      

  5.   

    其实就是语法解析的问题,语法规则是语言提供商定义的,规定用[]int来定义数组不是不可以。
    int[] xxx 表示 xxx 是 int[] 类型,即 int数组类型
    int[][] xxx 可以看作 (int[])[] xxx,把(int[])看作是一个类型T,即T[]
    那么初始化的时候,可以这么来看,首先正如LZ知道的int[]是个动态数组,而T是个int[],即T是动态的,所以要给T[]分配空间,肯定要先确定T具体是什么类型,即先把T的动态关系确定下来,也就是T=new int[5],然后才能确定T[]类型
    也就是
    不是int[][] = new int[][5]; 而不是new int[5][],即先确定前面的int[],再确定后面的[]