Когда вы создаете массив, каждая запись получает значение по умолчанию.Для boolean
значением по умолчанию является false
.(Для числовых примитивов значение по умолчанию равно нулю. Для ссылочных типов значение по умолчанию равно null
.)
Поэтому при создании массива верхнего уровня boolean[][] x = new boolean[3][];
, x
представляет собой 3-элемент массив логических массивов, для каждого элемента установлено значение по умолчанию null
.(Один массив примитивных типов является ссылочным типом.) Затем программа инициализирует каждый элемент x
новым массивом логических примитивов, каждый из которых заполнен false
элементами.Обратите внимание, что массивы имеют разную длину;это не проблема в Java.Как это бывает, x[2][2]
действительно существует (в отличие, скажем, x[1][2]
), поэтому вызов println
завершается успешно.