Junior
Kokie duomenų tipai egzistuoja JVM kontekste?
sobes.tech AI
Atsakymas iš AI
JVM kontekste egzistuoja du duomenų tipai: pirminiai (Primitive Types) ir nuorodų (Reference Types).
Pirminiai tipai:
- Atstovauja bazines reikšmes (skaičius, simbolius, loginės reikšmes).
- Dydis ir reikšmių diapazonas šių tipų yra griežtai apibrėžtas JVM specifikacijoje.
- Perduodami pagal reikšmę (value passing).
- Saugojami steke (Stack).
Pirminių tipų sąrašas:
boolean: true arba false.byte: 8 bitų ženklinis sveikasis skaičius.short: 16 bitų ženklinis sveikasis skaičius.char: 16 bitų Unicode simbolis (neženklinis).int: 32 bitų ženklinis sveikasis skaičius.long: 64 bitų ženklinis sveikasis skaičius.float: 32 bitų skaičius su slankiu kableliu vieno tikslumo.double: 64 bitų skaičius su slankiu kableliu dviejų tikslumų.
Nuorodų tipai:
- Atstovauja nuorodas (adresus) į objektus atmintyje (Heap).
- Nuorodos dydis dažniausiai priklauso nuo JVM architektūros (32-bit arba 64-bit).
- Perduodami pagal nuorodą (reference passing), nors techniškai perduodama nuorodos kopija.
- Saugojami krūvoje (Heap).
Nuorodų tipų rūšys:
- Klasės (Class Types): naudotojų arba bibliotekinių klasių egzemplioriai (pvz.,
String,Object). - Sąsajos (Interface Types): nuorodos į objektus, įgyvendinančius tam tikrą sąsają.
- Masyvai (Array Types): konteineriai objektai, skirti saugoti išrikiuotas elementų kolekcijas (tiek pirminius, tiek nuorodų tipus).
Pavyzdys naudojimo:
// Pirminis tipas
int primitiveInt = 10;
// Nuorodų tipas (klasės String objektas)
String referenceString = new String("Hello");
// Pirminis tipas masyve
int[] primitiveArray = {1, 2, 3};
// Nuorodų tipas masyve
String[] referenceArray = {"A", "B"};