La Java Virtual Machine (JVM) è un ambiente che esegue programmi Java. I programmi Java sono compilati in un linguaggio intermedio chiamato bytecode, che è ciò che esegue la JVM. Qualsiasi programma compilato in bytecode può essere eseguito su qualsiasi piattaforma su cui sia installata una JVM. Ciò rende il software Java compatibile con molte piattaforme di elaborazione diverse. La JVM presenta alcuni notevoli vantaggi e svantaggi che qualsiasi sviluppatore dovrebbe valutare attentamente prima di investire nello sviluppo di Java.

Indipendenza dalla piattaforma

Il bytecode Java può essere scritto una volta e quindi eseguito su più piattaforme. Il bytecode Java non deve essere trasferito su un ambiente hardware specifico poiché viene eseguito nella Java Virtual Machine. Qualsiasi applicazione compilata in bytecode Java può essere eseguita su qualsiasi piattaforma di elaborazione dotata di Java Virtual Machine.

Sicurezza

Java è stato scritto pensando alla sicurezza. Java Virtual Machine ha funzionalità di sicurezza integrate che consentono ai programmatori di scrivere programmi Java altamente sicuri. Inoltre, impedisce a software dannoso di compromettere il sistema operativo (OS) poiché impedisce alle applicazioni Java di interagire con le risorse del sistema operativo.

Prestazione

I programmi Java eseguiti su una macchina virtuale Java tendono a funzionare più lentamente rispetto ai programmi equivalenti scritti in C ++. La neutralità del sistema del bytecode costituisce uno svantaggio per quanto riguarda le prestazioni. Questo perché l'ottimizzazione del codice si basa fortemente su funzionalità specifiche del sistema. Poiché il bytecode Java è neutro per il sistema, non può essere ottimizzato per un set hardware specifico.

Correttezza

Un programma che esegue, come previsto, si dice che sia corretto. Poiché un programma Java si affida alla Java Virtual Machine per eseguirlo, JVM deve essere privo di errori affinché il programma funzioni correttamente. Questa dipendenza dalla Java Virtual Machine introduce un possibile punto di errore per il programma. Fortunatamente, il software Java Virtual Machine è prodotto con standard molto elevati e pertanto non è probabile che venga fornito con errori. Indipendentemente da ciò, un errore nella Java Virtual Machine è una possibilità che dovrebbe essere considerata.