Sobes.tech
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"};