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"};