Какое значение по умолчанию у ссылочных типов данных в Java?

«Какое значение по умолчанию у ссылочных типов данных в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ссылочные типы данных в Java по умолчанию инициализируются значением null. Это означает, что переменная не ссылается ни на какой объект в куче.

Пример объявления:

String str; // str == null
Object obj; // obj == null
MyClass instance; // instance == null

Ключевые нюансы:

  • NullPointerException: попытка вызвать метод или обратиться к полю через null-ссылку вызовет это исключение.
  • null ≠ пустая коллекция/массив: null означает отсутствие объекта, тогда как пустой массив new int[0] или коллекция new ArrayList<>() — это валидные объекты.
  • Примитивные типы (int, boolean, char и т.д.) не могут быть null; они имеют свои значения по умолчанию (0, false, 'u0000').