La macchina virtuale Java è un computer simulato nel software . Quando si esegue un programma Java , il computer avvia la macchina virtuale e la macchina virtuale viene eseguito il programma . Il design della macchina virtuale Java rende più sicuro di eseguire codice sul tuo sistema . Sistema di sicurezza
La sicurezza del sistema è una combinazione di due cose : la protezione contro accidentali crash o il fallimento a causa di errori nel codice , e la protezione contro codice dannoso da virus o hacker . Guasto accidentale è abbastanza facile da causare involontariamente in molti linguaggi di programmazione per uso improprio di memoria o tramite altri errori . Codice maligno fa danni per uso improprio intenzionalmente memoria in modi ingannevoli , o semplicemente per ottenere l'accesso al computer utilizzando "metodi nativi ," i comandi che i programmi utilizzano per chiedere la macchina per fare le cose .
Gestione della memoria
La macchina virtuale Java fa diverse cose per la protezione contro queste minacce . In primo luogo , esso non lascia memoria ad accesso programmi che non dovrebbero , o accedervi in modi ingannevoli (programmi non possono aggiungere puntatori insieme per ottenere gli indirizzi di memoria per le cose che non dovrebbero accedervi ) . Inoltre , la funzionalità di " garbage collection " tiene automaticamente traccia di gestione della memoria e ricicla quello che un programma non usa più. Queste caratteristiche impediscono un sacco di errore programmatore e potenziali tattiche degli hacker .
Sandbox
Un altro vantaggio di sicurezza dalla macchina virtuale Java è che serve come una " sandbox ". Quando si apre una pagina web con un applet , per esempio , viene eseguito all'interno della macchina virtuale e non può fare nulla al di fuori . Esso si limita alla sandbox , e solo può "giocare" al suo interno . In questo modo, anche se l'applet tenta di danneggiare la memoria o semplicemente si blocca , la macchina virtuale può arrestare , ma il sistema va avanti senza problemi .
Metodi nativi
Native metodi sono codice che può essere chiamato dalla macchina virtuale Java , ma vengono elaborati dal sistema sul quale è in esecuzione . Possono essere una debolezza , che serve come un modo per lasciare la sandbox . I metodi nativi utilizzati dai processi built - in di Java sono tutti confermati per contenere codice maligno . E 'possibile per una persona di fare le proprie metodi nativi , ma il sistema di sicurezza di Java può impedire questo . Applet , per esempio , non sono autorizzati ad installare i nuovi metodi nativi .