Sobes.tech
Junior

Какви типове данни съществуват в контекста на JVM?

sobes.tech AI

Отговор от AI

В контекста на JVM съществуват два типа данни: Примитивни типове (Primitive Types) и Типове за препратки (Reference Types).

Примитивни типове:

  • Представляват основни стойности (числа, символи, булеви стойности).
  • Размерът и диапазонът на стойностите на тези типове са строго определени от спецификацията на JVM.
  • Предават се по стойност.
  • Се съхраняват в стека (Stack).

Списък на примитивните типове:

  • boolean: вярно или грешно.
  • byte: 8-битово знаково цяло число.
  • short: 16-битово знаково цяло число.
  • char: 16-битов Unicode символ (без знак).
  • int: 32-битово знаково цяло число.
  • long: 64-битово знаково цяло число.
  • float: 32-битово число с плаваща запетая с една точност.
  • double: 64-битово число с плаваща запетая с двойна точност.

Типове за препратки:

  • Представляват препратки (адреси) към обекти в паметта (Heap).
  • Размерът на препратката обикновено зависи от архитектурата на JVM (32 или 64 бита).
  • Предават се чрез препратка, въпреки че технически се предава копие на самата препратка.
  • Се съхраняват в купчината (Heap).

Видове типове за препратки:

  • Класове (Class Types): Екземпляри на потребителски или библиотечни класове (например, String, Object).
  • Интерфейси (Interface Types): Препратки към обекти, реализиращи определен интерфейс.
  • Масиви (Array Types): Обекти-контейнери за съхранение на подредени колекции от елементи (както примитивни, така и препратки).

Пример за използване:

// Примитивен тип
int primitiveInt = 10;

// Препратка към обект (String)
String referenceString = new String("Hello");

// Примитивен тип в масив
int[] primitiveArray = {1, 2, 3};

// Препратка към масив
String[] referenceArray = {"A", "B"};