Duvidas com array[]

Pessoal , tenho o seguinte código:

public class Test{

public static void main( String []args){
int [] [][] x = new int [3] [] [];

int i ,j;

    x[0] = new int[4][];
    x[1] = new int[2][];
    x[2] = new int[5][];

for(i=0;i<x.lenght;i++)
for (j=0;j<x[i].lenght;j++){
x[i][j] = new int[i+j+1];
System.out.println(“tamanho=” +x[i][j].lenght);

}
}
}

a saída será 11.

Minha duvida é a seguinte:

Neste código estou atribuindo um laço para as variaveis i e j.

i etá pegando o tamanho do array (x.lenght)

for(i=0;i<x.lenght;i++)

j está pegando o tamnho de i e verificando até que seu tamanho seja menor que i (i.lenght)

for (j=0;j<x[i].lenght;j++)

neste ponto por exemplo é que não estou entendendo, quero dizer entendi mas nao compreendi.
x[i][j] = new int[i+j+1];

Este exercicio deverá resultar em 11. Más para mim se eu pegar o tamanho e i e somar com j, e acrescentar 1 , o resultado será diferente.

Este exercicio tem no livro da Kate , pág 32, e é um dos que estou tendo dificuldade, acho que não estou conseguindo enxergar este detalhe, e queria uma forma mais clara para este exercicio

Desculpe a minha inguinorancia, mas alguem poderia me explicar detalhadamente esta passagem.

[/i]

Olhando assim por alto isso nem compila!
é array.length e não lenght!
E peraí,ele estoura não?
em: x[i][j] = new int[i+j+1];?