Sobes.tech
Junior

Jakie typy danych istnieją w kontekście JVM?

sobes.tech AI

Odpowiedź od AI

W kontekście JVM istnieją dwa typy danych: Typy podstawowe (Primitive Types) i Typy referencyjne (Reference Types).

Typy podstawowe:

  • Reprezentują podstawowe wartości (liczby, znaki, wartości logiczne).
  • Rozmiar i zakres wartości tych typów jest ściśle określony przez specyfikację JVM.
  • Są przekazywane przez wartość.
  • Są przechowywane na stosie (Stack).

Lista typów podstawowych:

  • boolean: true lub false.
  • byte: 8-bitowa liczba całkowita ze znakiem.
  • short: 16-bitowa liczba całkowita ze znakiem.
  • char: 16-bitowy znak Unicode (bez znaku).
  • int: 32-bitowa liczba całkowita ze znakiem.
  • long: 64-bitowa liczba całkowita ze znakiem.
  • float: 32-bitowa liczba zmiennoprzecinkowa o pojedynczej precyzji.
  • double: 64-bitowa liczba zmiennoprzecinkowa o podwójnej precyzji.

Typy referencyjne:

  • Reprezentują odwołania (adresy) do obiektów w pamięci (Heap).
  • Rozmiar odwołania zazwyczaj zależy od architektury JVM (32-bit lub 64-bit).
  • Są przekazywane przez odwołanie, choć technicznie przekazywana jest kopia samego odwołania.
  • Są przechowywane na stercie (Heap).

Typy referencyjne:

  • Klasy (Class Types): Przykłady to instancje klas użytkownika lub bibliotek (np. String, Object).
  • Interfejsy (Interface Types): Odwołania do obiektów implementujących określony interfejs.
  • Tablice (Array Types): Obiekty kontenerowe do przechowywania uporządkowanych kolekcji elementów (zarówno typów podstawowych, jak i referencyjnych).

Przykład użycia:

// Typ podstawowy
int primitiveInt = 10;

// Typ referencyjny (obiekt klasy String)
String referenceString = new String("Hello");

// Typ podstawowy w tablicy
int[] primitiveArray = {1, 2, 3};

// Typ referencyjny w tablicy
String[] referenceArray = {"A", "B"};