Mucchio vs. Stack in Java

April 7

Mucchio vs. Stack in Java


programmi Java utilizzano la memoria del computer in diversi modi. Se i programmatori Java hanno almeno una conoscenza di base di come la memoria è gestita all'interno del linguaggio, hanno molte più possibilità di creare applicazioni altamente performanti efficienti. Come con la maggior parte degli aspetti della programmazione, non è necessario capire tutti i dettagli di implementazione del modello di gestione della memoria Java, ma cogliere i due tipi fondamentali di memoria e il loro impatto sulla programmazione è utile.

Tipi e la memoria

Java dati variabili del modello e componenti di codice in vari modi. A seconda del tipo e la portata di una variabile, può essere conservata in cumulo o stack di memoria. memoria Stack può essere pensato come breve termine, come mucchio lungo termine. Quando ci si avvicina un progetto di sviluppo in Java, si dovrà prendere decisioni su come si continui elementi di dati del modello, che determineranno in quali tipi di memoria sono memorizzati. Prendere queste decisioni con la comprensione delle implicazioni consente agli sviluppatori di massimizzare l'efficienza del programma.

Primitivi

I tipi primitivi in ​​Java includono tipi di numero e di caratteri di base come "int" per valori interi primitivi e "char" per i caratteri primitivi. Quando i tipi negozi Java primitivi, le informazioni memorizzate costituita in gran parte dei valori delle variabili, quindi la quantità di utilizzo della memoria tende ad essere più piccolo con tipi di oggetti. Se una variabile di tipo primitivo esiste solo come una variabile locale all'interno di un file di classe dell'applicazione, Java memorizzarlo nella memoria dello stack.

Oggetti

Tipi di oggetto in Java includono sia le tipologie previste all'interno del linguaggio stesso e tipi definiti dai programmatori che utilizzano dichiarazioni di classe. Quando un programma Java crea un oggetto, la JVM (Java Virtual Machine) assegna una sezione di memoria heap per esso. Nell'ambito del programma, il nome della variabile assegnato per un tipo di oggetto agisce come un riferimento a questa posizione nella memoria. Lo spazio per un oggetto all'interno di memoria heap può contenere i dati all'interno dell'oggetto, comprese le variabili di qualsiasi tipo, sia primitivo o un oggetto.

Mirino variabile

portata variabile ha un impatto diretto sulla gestione della memoria all'interno di un programma Java. Per creare applicazioni efficienti, gli sviluppatori cercano di minimizzare la portata necessaria per qualsiasi elemento variabile o dati. Ad esempio, il seguente mostra un'istruzione condizionale con una variabile locale al suo interno:

int someNumber = 3;

if (someNumber> 0) {

int doubleNumber = someNumber * 2;

System.out.println (doubleNumber);

}

Questo esempio banale esegue un calcolo su una variabile, scrivendo il risultato out. La variabile memorizzare il risultato del calcolo è dichiarata all'interno della condizionale, quindi non è accessibile in qualsiasi momento dopo il blocco condizionale. In generale, dando variabili la quantità minima di portata richiesta per un funzionamento corretto aiuta programmi utilizzano il meno memoria possibile.

Raccolta dei rifiuti

Il collettore dell'immondizia JVM gestisce la quantità di memoria che è disponibile per un programma. Se un oggetto o di altro tipo non viene più utilizzata all'interno di un'applicazione (ad esempio, se ha svolto la sua funzione e non è più necessario), la memoria ha usato dovrebbe idealmente essere messo a disposizione in caso di necessità. Il garbage collector è in grado di riallocare la memoria heap se un'applicazione sta esaurendo le risorse di memoria. Se una variabile oggetto è fuori portata, la sua memoria può essere un candidato per la raccolta dei rifiuti.