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 ruolo che essa svolge nella esecuzione di programmi Java è la chiave per molte delle caratteristiche e dei vantaggi del linguaggio . Virtual Machine
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 viene eseguito il programma . Istruzioni del programma vengono 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
virtuale Hardware
.
la macchina virtuale è costruita su quattro parti virtuali : i registri, la pila , l'area e il metodo di heap . I registri tenere traccia dello stato della pila e il luogo corrente nel programma . Lo stack contiene le variabili e gli indirizzi utilizzati nelle operazioni , come il programma viene eseguito . L'area di metodo ha il bytecode effettivo del programma in esecuzione . L'heap è dove è allocata la memoria necessaria per il programma , e poi restituito dal processo di garbage collection .
Garbage Collection
Una delle caratteristiche del macchina virtuale Java è built-in di Garbage Collection. In molti linguaggi di programmazione , il programmatore deve tenere manualmente traccia della memoria che l'applicazione prende e restituisce . In Java , la macchina virtuale fa questo compito da solo. Ogni volta che un programma Java è finito con una sezione di memoria , la macchina virtuale dice al computer la memoria è libera . Questo evita un sacco di errori , e allevia davvero una delle grandi preoccupazioni per i programmatori .
Access Memory
Un'altra caratteristica della macchina virtuale Java è l'accesso alla memoria strutturata . In parole povere, le posizioni esatte di tutte le variabili e strutture dati in memoria non è mai noto e tenuto traccia di solo dalla macchina virtuale . I programmatori non possono arrivare a memoria non dovrebbero. Questo è un enorme vantaggio per la sicurezza , la prevenzione non solo problemi accidentali , ma anche le tattiche degli hacker difficili. E 'costruito nel design della macchina virtuale , fino al livello di bytecode .
Sandbox
L'uso di una macchina virtuale dà vantaggi per programmi Java . Oltre compatibilità cross-platform , programmi Java sono anche più sicuri. La macchina virtuale è un " sandbox ", nel senso di un programma non può accedere a processi o di memoria al di fuori della macchina virtuale . Se un programma si blocca accidentalmente , si andrà in crash la macchina virtuale e lasciare il sistema intatto . La sandbox è anche una protezione intrinseca contro virus o hacker , impedendo loro di ottenere l'accesso al resto del computer .