Intern
Koja je razlika između primitivnih i referentnih tipova podataka?
sobes.tech АИ
Одговор од АИ
Primitivni tipovi direktno čuvaju vrednost, dok referentni tipovi čuvaju referencu (adresu u memoriji) na objekat koji sadrži vrednost.
Primitivni tipovi:
- Zauzimaju fiksnu i malu količinu memorije.
- Prenose se po vrednosti (kopira se sama vrednost).
- Počinju malim slovom.
- Uključuju:
byte,short,int,long,float,double,boolean,char.
// Primer primitivnog tipa
int a = 10;
int b = a; // Kopira vrednost 10
b = 20; // Menja se samo b, a ostaje 10
Referentni tipovi:
- Zauzimaju različitu količinu memorije, u zavisnosti od sadržaja objekta.
- Prenose se referencom (kopira se adresa objekta). Promena objekta putem reference utiče na sve promenljive koje na njega ukazuju.
- Obično počinju velikim slovom (klase).
- Uključuju: klase (
String,Object, prilagođene klase), interfejse, nizove.
// Primer referentnog tipa
String str1 = new String("Hello");
String str2 = str1; // Kopira referencu na objekat "Hello"
str2 = "World"; // str2 sada ukazuje na novi objekat "World". str1 i dalje ukazuje na "Hello".
// Drugi primer sa promenljivim objektom
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);
ArrayList<Integer> list2 = list1; // Kopira referencu na isti ArrayList objekat
list2.add(2); // Dodaje element u objekat na koji ukazuju obe referencije
// Sada list1 sadrži [1, 2], a list2 sadrži [1, 2]
Brza poređenja tabela:
| Svojstvo | Primitivni tipovi | Referentni tipovi |
|---|---|---|
| Skladištenje | Vrednost | Referenca na objekat |
| Prenos | Po vrednosti | Po referenci |
| Veličina memorije | Fiksna i mala | Promenljiva |
| Počinje malim slovom | Da | Obično velikim slovom |
| Nullabilnost | Ne mogu biti null |
Mogu biti null |
Primitivni tipovi se obavijaju u odgovarajuće wrapper klase (npr. int u Integer) da bi se sa njima radilo kao sa objektima.