Sobes.tech
Junior — Middle

Jak odróżnić podstawowe typy danych od obiektów referencyjnych w języku programowania?

sobes.tech AI

Odpowiedź od AI

W językach programowania podstawowe typy danych (prymitywy) i obiekty referencyjne różnią się sposobem przechowywania i przekazywania danych.

  • Podstawowe typy danych (np. int, float, boolean w Java/Android) są przechowywane na stosie i zawierają bezpośrednio wartość. Przy przekazywaniu zmiennej kopiuje się samą wartość.
  • Obiekty referencyjne (np. obiekty klas) są przechowywane na stercie, a w zmiennej znajduje się odwołanie (wskaźnik) do obiektu. Przy przekazywaniu kopiowane jest odwołanie, a nie sam obiekt.

Przykład:

int a = 5;
int b = a; // kopiuje wartość 5
b = 10;
// a nadal jest 5

String s1 = new String("hello");
String s2 = s1; // kopiuje odwołanie do obiektu
s2 = "world";
// s1 nadal jest "hello" (String w Java jest niemutowalny)

W ten sposób, podstawowe typy przechowują dane bezpośrednio, a referencyjne — przez wskaźnik na obiekt w pamięci.