В контексте JVM существуют два типа данных: примитивные (Primitive Types) и ссылочные (Reference Types).
Примитивные типы:
- Представляют собой базовые значения (числа, символы, булевы значения).
- Размер и диапазон значений этих типов строго определены спецификацией JVM.
- Передаются по значению (value passing).
- Хранятся в стеке (Stack).
Список примитивных типов:
boolean: true или false.
byte: 8-битное знаковое целое число.
short: 16-битное знаковое целое число.
char: 16-битный символ Unicode (без знака).
int: 32-битное знаковое целое число.
long: 64-битное знаковое целое число.
float: 32-битное число с плавающей запятой одинарной точности.
double: 64-битное число с плавающей запятой двойной точности.
Ссылочные типы:
- Представляют собой ссылки (адреса) на объекты в памяти (Heap).
- Размер ссылки обычно зависит от архитектуры JVM (32-бит или 64-бит).
- Передаются по ссылке (reference passing), хотя технически передается копия самой ссылки.
- Хранятся в куче (Heap).
Виды ссылочных типов:
- Классы (Class Types): Экземпляры пользовательских или библиотечных классов (например,
String, Object).
- Интерфейсы (Interface Types): Ссылки на объекты, реализующие определенный интерфейс.
- Массивы (Array Types): Объекты-контейнеры для хранения упорядоченных коллекций элементов (как примитивных, так и ссылочных типов).
Пример использования:
java