A proposito di Java Virtual Machine

June 22

A proposito di Java Virtual Machine


Quando si parla di Java, che spesso citano la Java Virtual Machine (JVM). Per qualcuno di nuovo a Java, questo può essere fonte di confusione. La natura della JVM e il suo ruolo nella gestione di programmi Java è la chiave per molte delle caratteristiche e dei vantaggi del linguaggio.

Macchina virtuale

La macchina virtuale Java è un software di simulazione di una macchina reale. Quando si esegue un programma Java, il computer si avvia la macchina virtuale Java e la macchina virtuale esegue il programma. Le istruzioni del programma sono tradotti dalla macchina virtuale in istruzioni per il sistema è in esecuzione su. Ci sono diverse versioni della macchina virtuale Java per ogni piattaforma - PC, Mac o Linux - ma lo stesso programma Java verrà eseguito su uno di essi.

Hardware virtuale

La macchina virtuale è costruita su quattro parti virtuali: i registri, lo stack, l'area metodo e l'heap. I registri tenere traccia dello stato della pila e il luogo corrente nel programma. Lo stack contiene variabili e indirizzi utilizzati nelle operazioni di come il programma viene eseguito. L'area metodo ha il bytecode reale del programma in esecuzione. L'heap è dove la memoria necessaria per il programma è assegnato, e poi restituito dal processo di garbage collection.

Raccolta dei rifiuti

Una delle caratteristiche della macchina virtuale Java è built-in di garbage collection. In molti linguaggi di programmazione, il programmatore deve tenere manualmente traccia della memoria dell'applicazione prende e restituisce. In Java, la macchina virtuale fa questo compito da sola. Ogni volta che un programma Java è rifinito con una sezione di memoria, la macchina virtuale dice al computer la memoria è libera. Questo impedisce un sacco di errori, e davvero allevia una delle grandi preoccupazioni per i programmatori.

Memory Access

Un'altra caratteristica della macchina virtuale Java è strutturato accesso alla memoria. In parole povere, le posizioni esatte di tutte le variabili e le strutture di dati in memoria si sa mai ed è tenuto traccia del solo dalla macchina virtuale. I programmatori non possono ottenere in memoria non dovrebbero. Questo è un enorme vantaggio per la sicurezza, la prevenzione non solo problemi accidentali, ma anche le tattiche degli hacker difficili. È costruito nel design della macchina virtuale, fino al livello di bytecode.

sandbox

L'uso di una macchina virtuale dà vantaggi ai programmi Java. Oltre compatibilità cross-platform, programmi Java sono anche più sicuri. La macchina virtuale è un "sandbox", cioè un programma non può accedere processi o la memoria al di fuori della macchina virtuale. Se un programma si blocca accidentalmente, andrà in crash la macchina virtuale e lasciare il sistema intatto. La sandbox ha anche una protezione intrinseca contro virus o hacker, impedendo loro di ottenere l'accesso al resto del computer.