Junior — Middle
Ako rozlíšiť základné dátové typy od referenčných objektov v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V programovacích jazykoch sa základné dátové typy (primitívy) a referenčné objekty líšia spôsobom ukladania a prenosu dát.
- Základné dátové typy (napríklad int, float, boolean v Java/Android) sa ukladajú na zásobník a obsahujú priamo hodnotu. Pri odovzdávaní premennej sa kopíruje samotná hodnota.
- Referenčné objekty (napríklad objekty tried) sa ukladajú na halde a v premennej je uložená referencia (ukazovateľ) na objekt. Pri odovzdávaní sa kopíruje iba referencia, nie samotný objekt.
Príklad:
int a = 5;
int b = a; // kopíruje hodnotu 5
b = 10;
// a stále je 5
String s1 = new String("hello");
String s2 = s1; // kopíruje referenciu na objekt
s2 = "world";
// s1 stále je "hello" (String v Java je nemenný)
Týmto spôsobom základné typy priamo ukladajú dáta, zatiaľ čo referenčné objekty to robia cez ukazovateľ na objekt v pamäti.