Sobes.tech
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.