Junior — Middle
Come distinguere i tipi di dati di base dagli oggetti di riferimento in un linguaggio di programmazione?
sobes.tech AI
Risposta dell'AI
Nei linguaggi di programmazione, i tipi di dati di base (primitivi) e gli oggetti di riferimento differiscono nel modo in cui vengono memorizzati e trasmessi.
- Tipi di dati di base (ad esempio, int, float, boolean in Java/Android) sono memorizzati nello stack e contengono direttamente il valore. Quando si passa una variabile, viene copio il valore stesso.
- Oggetti di riferimento (ad esempio, oggetti di classi) sono memorizzati nell'heap, e nella variabile si memorizza un riferimento (puntatore) all'oggetto. Quando si passa, viene coperto solo il riferimento, non l'oggetto stesso.
Esempio:
int a = 5;
int b = a; // copia il valore 5
b = 10;
// a è ancora 5
String s1 = new String("hello");
String s2 = s1; // copia il riferimento all'oggetto
s2 = "world";
// s1 è ancora "hello" (String in Java è immutabile)
In questo modo, i tipi di base memorizzano i dati direttamente, mentre gli oggetti di riferimento lo fanno tramite un puntatore all'oggetto in memoria.