leggevo What is a NullPointerException, and how do I fix it?, e nella risposta accettato, ho letto qualcosa che non ho ben capito:In che modo i puntatori funzionano con i tipi primitivi in Java?
int x; x = 10;
In questo esempio la variabile x è un int e Java inizializzarlo a 0 per tu. Quando lo assegni a 10 nella seconda riga, il tuo valore 10 viene scritto nella posizione di memoria indicata da x.
Ho pensato per i tipi primitivi, la variabile era l'indirizzo di memoria del valore effettivo; dove come per i tipi complessi, la variabile era semplicemente l'indirizzo di memoria di un puntatore al valore attuale. Ma la risposta sopra riportata mi dice che ho torto. Dice "la posizione di memoria indicata da x".
Quindi se x sta puntando a un indirizzo di memoria che memorizza il valore attuale, come è diverso un tipo primitivo da un tipo complesso? Non sapevo che i tipi primitivi avevano anche dei puntatori. Come funzionano i puntatori con i tipi primitivi?
non è ** un riferimento ** nella posizione di memoria? –
@KickButtowski Per tipi complessi, sì. Quello che non capisco è che qualcosa è puntato da x, che è un tipo primitivo. – Evorlor
quando dici punto, mi ricorda puntatore in c e C++ che non abbiamo una cosa simile in Java. –