Sobes.tech
Junior — Middle

Vysvětlete koncept referenčních typů v jazyce Java a v čem se liší od primitivních typů.

sobes.tech AI

Odpověď od AI

V jazyce Java existují dva hlavní typy dat: primitivní a referenční.

Primitivní typy (například int, boolean, double) přímo ukládají hodnoty. Zabírají pevnou velikost paměti a předávají se hodnotou. Například při přiřazení jedné proměnné jiné se kopíruje samotná hodnota.

Referenční typy jsou objekty a pole. Proměnná referenčního typu neukládá hodnotu objektu, ale odkaz (adresu) na oblast paměti, kde je objekt umístěn. Při přiřazení jedné referenční proměnné jiné se kopíruje odkaz, nikoli objekt. To znamená, že obě proměnné budou odkazovat na stejný objekt.

Příklad:

int a = 5;
int b = a; // kopíruje hodnotu 5
b = 10; // a zůstane 5

String s1 = new String("hello");
String s2 = s1; // kopíruje odkaz na objekt
s2 = "world"; // s1 zůstane "hello", protože String je neměnný

Hlavní rozdíl je tedy ve způsobu ukládání a přenosu dat: primitivní typy ukládají hodnoty přímo, zatímco referenční typy ukládají odkazy na objekty v paměti.