Sto lavorando a modo mio (lentamente, ma sicuramente) attraverso un libro:
Introduction to Java Programming, 10th edition, Comprehensive, by J. Liang (ISBN10: 0133761312)
Spiega l'idea di una variabile di riferimento in un modo che capisco. Tuttavia, l'idea non mi sembra intuitiva. Questo mi fa pensare che mi manca qualcosa nella mia comprensione:
"The declaration of an array variable does not allocate any space in memory for the array. It creates only a storage location for the reference to an array."
Tuttavia, se lo faccio:
double[] MyList;
Non ho creato una variabile MyList di dimensioni doppie? Quando lo faccio, la mia comprensione è che viene creato lo spazio in memoria della dimensione doppia, allo stesso modo di un tipo di dati primitivo (che, a mio avviso, dovrebbe essere diverso).
Un'altra cosa che ho problemi con:
"You cannot assign elements to an array unless it has already been created"
Perché esiste una possibilità di dichiarare un array, invece di crearlo contemporaneamente? Sia per creare e dichiarare una matrice che devo fare:
double[] myList = new double[10]'
Perché non può essere come:
double[10] myList;
Perché devo usare "nuovo"? Perché devo dire a Java, ancora una volta, che è un tipo double quando l'ho già specificato? Non vedo questo spreco in C ++, Python.
Un'altra cosa:
"An array variable that appears to hold an array actually contains a reference to that array"
Qual è la differenza tra i due? Perché deve essere così? Non l'ho mai incontrato in altre lingue. Tutto il resto è chiaro tranne questa piccola sezione.