java 数组中的基础问题?????

package com.songlei.hello.main;

public class one {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int bb[][]=new int[4][];
    bb[0]=new int[1];
    bb[1]=new int[2];
    bb[2]=new int[3];
    bb[3]=new int[4];
    int i,j,k=0;
    for(i=0;i<4;i++)
    for(j=0;_j_<i+1;j++)    //为什么这里的_j_<后面必须写成包含i的式子呐?
        {bb[i][j]=k;
        k++;
        }
    for(i=0;i<4;i++)
    for(j=0;j<i+1;j++)
    {System.out.print(bb[i][j]+" ");System.out.println();

    }
}

}

下面这段二维定义决定的。二维的数量等于一维数组下标的个数

 bb[0]=new int[1];
    bb[1]=new int[2];
    bb[2]=new int[3];
    bb[3]=new int[4];

最好是写  外循环写bb.lenth  内循环写bb[i].lenth   想想嵌套循环和二维数组的定义