Por que acessar numbers[3] falha para o array {1, 2, 3}?
numbers[3]
{1, 2, 3}
O array com três elementos tem os índices válidos 0, 1 e 2, portanto o índice 3 está fora dos limites.
Arrays Java não podem conter o valor 3.
O índice 3 se refere a um elemento inexistente de índice zero porque Java começa em 1.
O inicializador cria um array vazio, sem índices.