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.