Какие знаешь ссылочные типы данных в Java

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

Ответ

В Java все ссылочные типы являются объектами (кроме примитивов). Основные:

  1. Классы - пользовательские или стандартные (String, Integer и т.д.)
  2. Интерфейсы - List, Map и другие
  3. Массивы - даже примитивных типов (int[] и др.)
  4. Перечисления (enum) - специальный вид класса
  5. Аннотации - метаданные (@Override и др.)

Пример:

String str = "Hello"; // Ссылка на объект String
List<Integer> list = new ArrayList<>(); // Ссылка на List
int[] arr = new int[5]; // Ссылка на массив