La differenza tra JDK, JRE e JVM è una delle domande di colloquio più popolari. Potrebbe anche essere chiesto di spiegare JDK vs JRE vs JVM.
Differenza tra JDK, JRE e JVM
JDK, JRE e JVM sono concetti fondamentali del linguaggio di programmazione Java. Non usiamo questi concetti nella programmazione. Ma, come sviluppatori Java, dovremmo conoscerli.
1. JDK
Il Java Development Kit, noto anche come JDK, è il componente principale dell’ambiente Java e fornisce tutti gli strumenti, gli eseguibili e i binari necessari per compilare, eseguire il debug e eseguire un programma Java. JDK è un software specifico per la piattaforma e per questo motivo abbiamo installer separati per Windows, Mac e sistemi Unix. Possiamo dire che JDK è il superset di JRE poiché contiene JRE con il compilatore Java, il debugger e le classi fondamentali.
2. JVM
JVM è il cuore del linguaggio di programmazione Java. Quando eseguiamo un programma Java, il JVM è responsabile della conversione del bytecode nel codice specifico della macchina. Il JVM è anche dipendente dalla piattaforma e fornisce funzioni di base di Java come la gestione della memoria, la raccolta dei rifiuti, la sicurezza, ecc. Il JVM è personalizzabile e possiamo utilizzare le opzioni di Java per personalizzarlo. Ad esempio, allocare memoria minima e massima al JVM. Il JVM viene chiamato virtuale perché fornisce un’interfaccia che non dipende dal sistema operativo sottostante e dall’hardware della macchina. Questa indipendenza dall’hardware e dal sistema operativo consente di scrivere un programma Java una volta e eseguirlo ovunque.
3. JRE
JRE è l’implementazione del JVM. Fornisce una piattaforma per eseguire programmi Java. JRE è composto da JVM, binari Java e altre classi per eseguire qualsiasi programma con successo. JRE non contiene strumenti di sviluppo come compilatore Java, debugger, JShell, ecc. Se si desidera solo eseguire un programma Java, è possibile installare solo JRE. Non è necessario JDK perché non è richiesta alcuna compilazione o sviluppo del codice sorgente Java. Ora che abbiamo una comprensione di base di JDK, JVM e JRE, vediamo le differenze tra di loro.
JDK vs JRE vs JVM
Vediamo alcune delle differenze importanti tra JDK, JRE e JVM.
- JDK è per scopi di sviluppo, mentre JRE è per l’esecuzione dei programmi Java.
- Entrambi JDK e JRE contengono JVM in modo da poter eseguire i nostri programmi Java.
- JVM è il cuore del linguaggio di programmazione Java e fornisce l’indipendenza dalla piattaforma.
Il compilatore Just-in-time (JIT)
A volte troverai JIT accanto a JVM, JDK e JRE nei libri di testo. JIT fa parte della JVM che ottimizza il processo di conversione del bytecode nel linguaggio specifico della macchina. Compila i bytecode simili contemporaneamente e riduce il tempo complessivo richiesto per la compilazione del bytecode nel linguaggio specifico della macchina.
Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm