Что такое конструктор и какие типы конструкторов существуют в Java?
Что проверяют
Знаете ли вы правила инициализации объекта и относитесь ли к конструктору как к месту, где устанавливается инвариант класса. Вопрос базовый, поэтому ценится точность формулировок: на нём хорошо видно, читали ли вы язык или собирали знания по чужим примерам.
Как отвечать
Конструктор это блок инициализации с именем класса, без возвращаемого типа, вызывается при создании объекта. Формально он не метод: не наследуется, не переопределяется, к нему не применяется полиморфизм.
Дальше по видам. Конструктор по умолчанию генерирует компилятор, и только если в классе не объявлено ни одного конструктора; он без параметров, вызывает конструктор предка и получает модификатор доступа класса. Написанный руками конструктор без параметров это другое. Параметризованных может быть несколько, они образуют перегрузку и обычно сводятся цепочкой к самому полному через вызов первой строкой. Копирующий конструктор в Java существует как соглашение, а не как конструкция языка: компилятор ничего подобного не создаёт.
Полезно добавить порядок: сначала конструктор предка, затем инициализаторы полей и блоки инициализации в порядке объявления, затем тело конструктора. И назначение: проверить аргументы, выставить поля, дальше объект уже валиден. Если параметров много, уместны фабричные методы с говорящими именами или сборщик, а у записей есть канонический и компактный конструкторы.
Где спотыкаются
Называют копирующий конструктор отдельным видом конструктора Java, по памяти о C++. Здесь его никто не генерирует, а копирование полей по умолчанию поверхностное: вложенный список окажется общим у обеих копий, и правка через одну будет видна во второй.
Считают, что конструктор без аргументов есть всегда. Он пропадает в тот момент, когда вы объявили параметризованный, и код, создающий объект отражением, ломается на ровном месте.
Складывают в конструктор десяток параметров, среди которых несколько одного типа. Перепутанные местами аргументы компилируются молча и проявляются в рантайме. Лечится это не комментарием, а фабричными методами, сборщиком или собственными типами вместо голых строк и чисел.