void someMethod() {
byte[] array = { 0, 0 };
}
Questo array verrà archiviato in heap o in pila?L'array java inizializzato va su stack o heap?
void someMethod() {
byte[] array = { 0, 0 };
}
Questo array verrà archiviato in heap o in pila?L'array java inizializzato va su stack o heap?
È possibile pensare a come sempre in corso.
Credo che alcune macchine virtuali intelligenti siano in grado di allocare in stack gli oggetti se sono in grado di rilevare che è sicuro, ma concettualmente è in pila. In particolare, tutti i tipi di array sono tipi di riferimento (anche se il tipo di elemento è primitivo), quindi la variabile array
(che è nello stack) è solo un riferimento a un oggetto e gli oggetti normalmente vanno nell'heap.
In particolare, immaginare un piccolo cambiamento:
byte[] someMethod() {
byte[] array = { 0, 0 };
return array;
}
Se la matrice sono stati allocati sulla pila, quale sarebbe il riferimento restituito deve riferisce?
Sarà archiviato nell'heap