Vysvetlite koncept referenčných typov v jazyku Java a v čom sa líšia od primitívnych typov.
sobes.tech AI
Odpoveď od AI
V Jave existujú dva hlavné typy údajov: primitívne a referenčné.
Primitívne typy (napríklad int, boolean, double) priamo ukladajú hodnoty. Zaberajú pevný veľkosť pamäte a odovzdávajú sa hodnotou. Napríklad, pri priraďovaní jednej premennej inej sa kopíruje samotná hodnota.
Referenčné typy sú objekty a polia. Premenná referenčného typu neukladá hodnotu objektu, ale odkaz (adresu) na oblasť pamäte, kde je objekt umiestnený. Pri priraďovaní jednej referenčnej premennej inej sa kopíruje odkaz, nie objekt. To znamená, že obe premenne budú odkazovať na ten istý objekt.
Príklad:
int a = 5;
int b = a; // kopíruje hodnotu 5
b = 10; // a zostane 5
String s1 = new String("hello");
String s2 = s1; // kopíruje odkaz na objekt
s2 = "world"; // s1 zostane "hello", pretože String je nemenný
Hlavný rozdiel teda spočíva v spôsobe ukladania a prenosu dát: primitívne typy ukladajú hodnoty priamo, zatiaľ čo referenčné typy ukladajú odkazy na objekty v pamäti.