Создается ли инстанс фрагмента всегда вручную или система может создать его сама
Что проверяют
Знаете ли вы, что фрагментами управляет FragmentManager, а не только ваш код. Ответ показывает, сталкивались ли вы с пересозданием после поворота экрана и смерти процесса, и понимаете ли, откуда взялось правило про пустой конструктор.
Как отвечать
Оба варианта реальны. Обычно инстанс создаёте вы: транзакцией через supportFragmentManager, адаптером ViewPager2, графом навигации. Но при восстановлении состояния система создаёт фрагменты заново сама, через FragmentFactory, вызывая конструктор без аргументов рефлексией. То же самое с фрагментом, объявленным в разметке внутри FragmentContainerView с атрибутом android:name.
Отсюда практические правила. Конструктор без параметров обязателен, а данные передаются через arguments и Bundle, классический статический newInstance. Если нужны зависимости в конструкторе, заводится свой FragmentFactory и ставится в supportFragmentManager.fragmentFactory до вызова super.onCreate, иначе при восстановлении фабрика не успеет примениться. Для разметки удобен конструктор Fragment(@LayoutRes) из androidx, он избавляет от ручного onCreateView.
Где спотыкаются
Пишут конструктор с параметрами. Код работает ровно до первого поворота или до возврата в приложение после выгрузки процесса, и там уже либо исключение при инстанцировании, либо поля с null, что ещё хуже, потому что падает не сразу.
Хранят состояние в полях фрагмента вместо arguments и SavedStateHandle. После смерти процесса экран восстанавливается пустым, и баг не воспроизводится на столе разработчика: нужен режим с отключением фоновых процессов.
Добавляют фрагмент транзакцией в onCreate без проверки, что savedInstanceState пустой. Система уже восстановила свой экземпляр, ваш код кладёт сверху второй, и на экране появляются задвоенные фрагменты и задвоенные запросы.