Sobes.tech
Junior — Middle

Cum se disting tipurile de date de bază de obiectele de referință într-un limbaj de programare?

sobes.tech AI

Răspuns de la AI

În limbajele de programare, tipurile de date de bază (primitive) și obiectele referențiale diferă în modul de stocare și transmitere a datelor.

  • Tipurile de date de bază (de exemplu, int, float, boolean în Java/Android) sunt stocate în stivă și conțin valoarea direct. La transmiterea unei variabile, se copiază valoarea în sine.
  • Obiectele referențiale (de exemplu, obiecte de clase) sunt stocate în heap, iar în variabilă se păstrează o referință (pointer) către obiect. La transmitere, se copiază doar referința, nu obiectul în sine.

Exemplu:

int a = 5;
int b = a; // se copiază valoarea 5
b = 10;
// a încă este 5

String s1 = new String("hello");
String s2 = s1; // se copiază referința către obiect
s2 = "world";
// s1 încă este "hello" (String în Java este imutabil)

Astfel, tipurile de bază stochează datele direct, iar cele referențiale o fac printr-un pointer către obiect în memorie.