Oi Rods, tudo certo?
- É isso mesmo! Na primeira linha é criado um array onde a primeira dimensão tem duas posições. A notação
int[][]
indica que cada posição do array da primeira dimensão aponta para um outro array. Mas ainda não definimos o tamanho desses arrays, então fica nulo:

Também dá pra ver isso, imprimindo as posições:
int[][] estranho = new int[2][];
System.out.println(estranho[0]); // mostra null
System.out.println(estranho[1]); // mostra null
Como cada uma das posições do primeiro array é capaz de apontar pra um outro array, primeiro falamos que a posição 0 irá apontar pra um array de tamanho 20:

O mesmo vale para a terceira linha do código:

Então fica assim : a primeira posição do array aponta pra um outro array de 20 posições, e a segunda pra um array de 10 posições. A dimensões não precisam necessariamente ter o mesmo tamanho. :)
Qualquer dúvida é só avisar. Abraço!