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