Поскольку многие более или менее правильно указали, что такое ссылочный и примитивный типы, может быть интересно, что у нас есть несколько более важных типов в Java. Вот полный список типов в Java (насколько я знаю (JDK 11)).
Тип примитива
Описывает значение (а не тип).
11
Тип ссылки
Описывает конкретный тип, экземпляры которого расширяют объект (интерфейс, класс, перечисление, массив). Кроме того, TypeParameter на самом деле является ссылочным типом!
Integer
Примечание. Разница между примитивом и ссылочным типом делает необходимым полагаться на бокс для преобразования примитивов в экземпляры объектов и наоборот.
Примечание 2: Параметр типа описывает тип, имеющий необязательную нижнюю или верхнюю границу, и на него можно ссылаться по имени в его контексте (в отличие от подстановочного типа). Параметр типа обычно может применяться к параметризованным типам (классам / интерфейсам) и методам. Тип параметра определяет идентификатор типа.
Тип подстановочного знака
Выражает неизвестный тип (как любой в TypeScript), который может иметь нижнюю или верхнюю границу, используя super или extension.
? extends List<String>
? super ArrayList<String>
Тип пустоты
Небытие. Нет значения / экземпляр возможен.
void method();
Нулевой тип
Единственное представление - «ноль». Это используется особенно во время вычислений помех типа. Ноль - это особый случай, логически принадлежащий любому типу (может быть назначен любой переменной любого типа), но фактически он не считается экземпляром какого-либо типа (например, (null instanceof Object) == false).
null
Тип соединения
Тип объединения - это тип, который является набором альтернативных типов. К сожалению, в Java он существует только для оператора multi catch.
catch(IllegalStateException | IOException e) {}
Тип помех
Тип, совместимый с несколькими типами. Поскольку в Java класс имеет не более одного суперкласса (у Object его нет), типы помех допускают, чтобы классом был только первый тип, а каждый другой тип должен быть интерфейсным типом.
void method(List<? extends List<?> & Comparable> comparableList) {}
Неизвестный тип
Тип неизвестен. Это относится к определенным лямбда-определениям (не заключенным в квадратные скобки, один параметр).
list.forEach(element -> System.out.println(element.toString)); //element is of unknown type
Var Type
Неизвестный тип, введенный объявлением переменной, определяющей ключевое слово 'var'.
var variable = list.get(0);