Sto facendo un po 'di studio e mi sono imbattuto in una domanda che chiede di mostrare il diagramma di memoria corretta del codice seguente:Che va in pila o heap?
int [] d1 = new int[5];
d1[0] = 3;
Integer [] d2 = new Integer[5];
d2[0] = new Integer(3);
ArrayList d3 = new ArrayList();
d3.add(3);
Ecco il mio tentativo di un diagramma di memoria, ma può essere corretto:
ho capito le cose come oggetti, variabili di istanza, e "nuovi" casi sono tutti sul mucchio e le cose come le variabili locali e tipi primitivi sono in pila, ma io sono ancora confuso quando si tratta di tipi di array.
Qualsiasi aiuto è apprezzato.
Un array è alla fine una 'Object' (anche un array di primitive). A proposito, sei vicino alla risposta finale. –
@LuiggiMendoza Ho cambiato il mio diagramma. Questa sarebbe la risposta corretta? – blutuu
Quasi, la JVM mantiene un pool per gli oggetti 'Integer' da -128 a 127. Quindi' Intero' con valore 3 sarà uguale sia per l'array 'd2' che per' d3' ArrayList. –