Sobes.tech
Junior — Middle

Објасните концепт референтних типова у Јави и у чему се разликују од примитивних типова.

sobes.tech АИ

Одговор од АИ

U Javi postoje dva osnovna tipa podataka: primitivni i referentni.

Primitivni tipovi (npr. int, boolean, double) direktno čuvaju vrednosti. Zauzimaju fiksnu veličinu memorije i prosleđuju se po vrednosti. Na primer, pri dodeljivanju jedne promenljive drugoj, kopira se sama vrednost.

Referentni tipovi su objekti i nizovi. Promenljiva referentnog tipa ne čuva vrednost objekta, već referencu (adresu) na memorijsku oblast gde je objekat smešten. Pri dodeljivanju jedne referentne promenljive drugoj, kopira se referenca, a ne objekat. To znači da obe promenljive ukazuju na isti objekat.

Primer:

int a = 5;
int b = a; // kopira vrednost 5
b = 10; // a će ostati 5

String s1 = new String("hello");
String s2 = s1; // kopira referencu na objekat
s2 = "world"; // s1 će ostati "hello", jer je String nepromenljiv

Dakle, glavna razlika je u načinu skladištenja i prenosa podataka: primitivni tipovi direktno čuvaju vrednosti, dok referentni tipovi čuvaju reference na objekte u memoriji.