Array dimensione

di il
2 risposte

Array dimensione

Salve ragazzi ho questo codice :
     int nums1 [] = new int [3];
     int nums2 [] = {1,2,3,4,5};
     nums1 = nums2;
     for(int x : nums1) {
         System.out.print(x + ":");
     }  
allora se nums1 è di 3 elementi come fa a non dare errore se gli viene passato nums2, io sapevo che non può essere cambiato il numero degli elementi di un array

2 Risposte

  • Re: Array dimensione

    maracaibo25 ha scritto:


    allora se nums1 è di 3 elementi come fa a non dare errore se gli viene passato nums2, io sapevo che non può essere cambiato il numero degli elementi di un array
    Infatti NON viene cambiato il numero di elementi all'interno dell'array!
    Le due variabili nums1 e nums2 semplicemente contengono un reference ad un array che, se la variabile non è final, può ovviamente cambiare.
    Con nums1 = nums2; si fa in modo che nums1 faccia ora riferimento allo STESSO oggetto array referenziato anche da nums2

    L'array originale di nums1 (quello da 3 elementi) diventa non più referenziato/raggiungibile e quindi sparirà grazie al g.c.
  • Re: Array dimensione

    andbin ha scritto:


    Infatti NON viene cambiato il numero di elementi all'interno dell'array!
    Le due variabili nums1 e nums2 semplicemente contengono un reference ad un array che, se la variabile non è final, può ovviamente cambiare.
    Con nums1 = nums2; si fa in modo che nums1 faccia ora riferimento allo STESSO oggetto array referenziato anche da nums2

    L'array originale di nums1 (quello da 3 elementi) diventa non più referenziato/raggiungibile e quindi sparirà grazie al g.c.
    ok grazie andbin
Devi accedere o registrarti per scrivere nel forum
2 risposte