Relazione tra JVM Memoria e Dimensione heap

February 28

La macchina virtuale Java rappresenta la base del linguaggio di programmazione Java. Il software agisce come un buffer attuazione tra il codice Java e il sistema informatico sottostante. Questo consente al codice Java di funzionare su qualsiasi sistema così come sono, aumentando la portabilità. Dal momento che la JVM esiste come un ambiente in cui eseguire il codice, che contiene la propria configurazione di memoria, tra cui la memoria superficiale e lo spazio di heap. Lo spazio heap costituisce una parte significativa della memoria JVM, contenente i dati critici di applicazione di run-time.

Oggetti e Memoria

Java rappresenta un linguaggio di programmazione orientato agli oggetti puramente, il che significa che Java contiene i benefici della programmazione orientata agli oggetti, tra cui l'ereditarietà e il polimorfismo. Per includere questi benefici, la JVM deve avere uno spazio per riporre gli oggetti istanziati. Questi oggetti non esistono nella memoria immediata di un thread di esecuzione di codice Java. Piuttosto, il codice Java dichiara "riferimenti" agli oggetti che memorizzano una posizione nel profondo, memoria a lungo termine.

Il Heap e Stack

Il mucchio e lo stack rappresentano la differenza tra lungo e la memoria a breve termine in un programma in esecuzione, indipendentemente dal linguaggio orientato agli oggetti. Lo stack riferisce alle variabili immediati e chiamate di metodo all'interno un programma in esecuzione. Questo include variabili scalari, come numeri interi e byte, così come funzioni chiamate. Il mucchio, invece, rappresenta la posizione in cui gli oggetti creati vengono memorizzati dal programma. Gli oggetti sono allocati dinamicamente nel mucchio e rimanere lì fino a quando non sono più richieste dal programma.

memoria JVM

I progettisti hanno sviluppato sistema di memoria della JVM per imitare il sistema orientato agli oggetti di altri linguaggi come C ++. Ogni thread in esecuzione di codice Java nella JVM ha il proprio stack, che rappresenta il suo variabili scalari e chiamate di funzione locale. Inoltre, la JVM ha un proprio spazio di heap. Quando un programma crea un riferimento a un oggetto, l'oggetto trae memoria dallo spazio mucchio collettiva.

Il mucchio di JVM memoria

Lo spazio heap è solo una parte della memoria totale JVM, insieme con lo spazio di stack e altre allocazioni di memoria per le funzioni fondamentali e il codice JVM. Tuttavia, lo spazio heap rappresenta una parte fondamentale del JVM in quanto è il veicolo attraverso il quale vengono creati oggetti. Inoltre, la JVM ha un programma di raccolta dei rifiuti integrato per eliminare gli oggetti inutilizzati dal mucchio. Nei vecchi linguaggi orientati agli oggetti, gli oggetti dovevano essere eliminati manualmente, o rischiato utilizzando lo spazio heap in quello che è stato definito un "perdita di memoria". garbage collector di JVM, tuttavia, monitora il mucchio e cancella vecchi oggetti.