Junior
Millised andmetüübid eksisteerivad JVM kontekstis?
sobes.tech AI
Vastus AI-lt
JVM kontekstis on kaks andmetüüpi: primitiivsed (Primitive Types) ja viidetüübid (Reference Types).
Primitivsed tüübid:
- Esindavad põhiväärtusi (arvud, sümbolid, loogilised väärtused).
- Nende tüüpide suurus ja väärtuste vahemik on rangelt määratletud JVM-i spetsifikatsioonis.
- Edastatakse väärtuse (value passing) kaudu.
- Hoitakse virnas (Stack).
Primitivsete tüüpide nimekiri:
boolean: true või false.byte: 8-bitine märgiline täisarv.short: 16-bitine märgiline täisarv.char: 16-bitine Unicode sümbol (märkideta).int: 32-bitine märgiline täisarv.long: 64-bitine märgiline täisarv.float: 32-bitine ujukomaarv ühe täpsusega.double: 64-bitine ujukomaarv kahekordse täpsusega.
Viidetüübid:
- Esindavad viiteid (aadresse) objektidele mälus (Heap).
- Viidetüübi suurus sõltub tavaliselt JVM arhitektuurist (32-bit või 64-bit).
- Edastatakse viite (reference passing), kuigi tehniliselt edastatakse viite koopiat.
- Hoitakse kogus (Heap).
Viidetüüpide liigid:
- Klassid (Class Types): kasutaja- või raamatukoguklasside eksemplarid (näiteks
String,Object). - Liidesed (Interface Types): viited objektidele, mis rakendavad kindlat liidest.
- Massivid (Array Types): konteinerobjektid, mis hoiavad järjestatud elementide kogumeid (nii primitiivseid kui ka viidetüüpe).
Näide kasutamisest:
// Primitivne tüüp
int primitiveInt = 10;
// Viidetüüp (klass String objekt)
String referenceString = new String("Hello");
// Primitivne tüüp massiivis
int[] primitiveArray = {1, 2, 3};
// Viidetüüp massiivis
String[] referenceArray = {"A", "B"};