JDK vs JRE vs JVM: differenze chiave
Che cosè JDK?
JDK è un ambiente di sviluppo software utilizzato per creare applet e applicazioni Java. La forma completa di JDK è Java Development Kit. Gli sviluppatori Java possono usarlo su Windows, macOS, Solaris e Linux. JDK li aiuta a programmare ed eseguire programmi Java. È possibile installare più di una versione JDK sullo stesso computer.
In questo tutorial imparerai:
- Cosè JDK?
- Cosè JRE?
- Cosè JVM?
- Perché usare JDK?
- Perché usare JRE?
- Perché JVM?
- Caratteristiche di JDK
- Caratteristiche di JRE
- Caratteristiche di JVM
- Come funziona JDK?
- Come funziona JRE?
- Come funziona JVM?
- Differenza tra JDK, JRE e JVM
Cosè JRE?
JRE è una parte di un software progettato per eseguire altri software . Contiene le librerie di classi, la classe del caricatore e JVM. In termini semplici, se si desidera eseguire un programma Java, è necessario JRE. Se non sei un programmatore, non è necessario installare JDK, ma solo JRE per eseguire programmi Java. Tuttavia, tutte le versioni di JDK vengono fornite in bundle con Java Runtime Environment, quindi non è necessario scaricare e installare JRE separatamente nel tuo PC. La forma completa di JRE è Java Runtime Environment.
Cosè JVM?
JVM è un motore che fornisce un ambiente runtime per guidare il codice Java o le applicazioni. Converte il bytecode Java in linguaggio macchina. JVM fa parte di Java Run Environment (JRE). Non può essere scaricato e installato separatamente. Per installare JVM, è necessario installare JRE. Il la forma completa di JVM è Java Virtual Machine.
In molti altri linguaggi di programmazione, il compilatore produce codice macchina per un sistema specifico. Tuttavia, il compilatore Java produce codice per una macchina virtuale che viene chiamata JVM.
DIFFERENZE CHIAVE
- JDK è un kit di sviluppo software mentre JRE è un pacchetto software che consente lesecuzione del programma Java, mentre JVM è un ambiente per lesecuzione di bytecode.
- La forma completa di JDK è Java Development Kit, mentre la forma completa di JRE è Java Runtime Environment, mentre la forma completa di JVM è Java Virtual Machine.
- JDK dipende dalla piattaforma, JRE dipende anche dalla piattaforma, ma JVM è indipendente dalla piattaforma.
- JDK contiene strumenti per lo sviluppo, il debug, ecc. JRE contiene librerie di classi e altri file di supporto, mentre il software gli strumenti di sviluppo non sono inclusi in JVM.
- JDK viene fornito con il programma di installazione, daltra parte, JRE contiene solo lambiente per eseguire il codice sorgente mentre JVM è incluso in entrambi i software JDK e JRE.
Perché usare JDK?
Ecco le ragioni importanti per usare JDK:
- JDK contiene gli strumenti necessari per scrivere programmi Java e JRE per eseguirli.
- Include un compilatore, un lanciatore di applicazioni Java, un visualizzatore di applet, ecc.
- Il compilatore converte il codice scritto in Java in codice byte.
- Il lanciatore di applicazioni Java apre un JRE, carica la classe necessaria ed esegue il suo metodo principale.
Perché usare JRE?
Ecco i ragioni importanti per lutilizzo di JRE:
- JRE contiene librerie di classi, JVM e altri file di supporto. Non contiene alcuno strumento per lo sviluppo Java come un debugger, un compilatore, ecc.
- Utilizza importanti classi di pacchetti come le librerie math, swingetc, util, lang, awt e runtime.
- Se devi eseguire applet Java, JRE deve essere installato nel tuo sistema.
Perché JVM?
Ecco i motivi importanti per utilizzare JVM:
- JVM fornisce un modo indipendente dalla piattaforma di eseguire Java codice sorgente.
- Dispone di numerose librerie, strumenti e framework.
- Una volta eseguito il programma Java, puoi eseguirlo su qualsiasi piattaforma e risparmiare molto tempo.
- JVM viene fornito con il compilatore JIT (Just-in-Time) che converte il codice sorgente Java in linguaggio macchina di basso livello. Quindi, funziona più velocemente come una normale applicazione.
Caratteristiche di JDK
Ecco le caratteristiche importanti di JDK:
- Ti consente di gestire più estensioni in un unico blocco catch.
- JDK include tutte le funzionalità di JRE.
- Contiene strumenti di sviluppo come compilatore, debugger, ecc.
- JDK fornisce lambiente per sviluppare ed eseguire il codice sorgente Java.
- Può essere installato su sistemi operativi Windows, Unix e Mac.
- Loperatore Diamond può essere utilizzato per specificare uninterfaccia di tipo generico invece di scrivere quella esatta.
Caratteristiche di JRE
Di seguito sono riportate le caratteristiche importanti di JRE:
- Java Runtime Environment è un insieme di strumenti che utilizzano effettivamente la JVM.
- JRE contiene tecnologia di distribuzione, inclusi Java Web Start e Java Plug-in.
- Gli sviluppatori possono eseguire facilmente il codice sorgente in JRE, ma non possono scrivere e compilare il programma Java.
- Include librerie di integrazione come Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI) e altro ancora.
- JRE dispone di JVM e client della macchina virtuale Java HotSpot.
Caratteristiche di JVM
Ecco le caratteristiche importanti di JVM:
- Ti consente di eseguire applicazioni in un ambiente cloud o nel dispositivo.
- Java Virtual Machine converte il codice byte nel codice specifico della macchina.
- Fornisce funzioni java di base come gestione della memoria, sicurezza, garbage collection e altro.
- JVM esegue il programma utilizzando librerie e file forniti da Java Runtime Environment.
- JDK e JRE contengono entrambi Java Virtual Machine.
- Può eseguire il programma Java riga per riga, quindi è anche chiamato come interprete.
- JVM è facilmente personalizzabile, ad esempio, è possibile allocare memoria minima e massima.
- È indipendente dallhardware e dal sistema operativo. Quindi, puoi scrivere un programma java una volta ed eseguirlo ovunque.
Come funziona JDK?
Di seguito sono riportati i componenti importanti di JDK:
- JDK e JRE: JDK consente ai programmatori di creare programmi Java di base che possono essere eseguiti dal JRE, che includeva JVM e librerie di classi.
- Librerie di classi: è un gruppo di librerie caricabili dinamicamente che il programma Java può chiamare in fase di esecuzione.
- Compilatori: è un programma Java che accetta file di testo di sviluppatori e compila in File di classe Java. È la forma comune di output fornita dal compilatore, che contiene il codice byte Java. In Java, il compilatore principale è Javac.
- Debugger: Debugger è un programma Java che consente agli sviluppatori di testare ed eseguire il debug di programmi Java.
- JavaDoc: JavaDoc è la documentazione realizzata da Sun Microsystems per Java. JavaDoc può essere utilizzato per generare documentazione API in file HTML dal programma sorgente
Come funziona JRE?
JRE include unistanza di JVM, classi di libreria e strumenti di sviluppo. Dopo aver scritto e compilato il codice Java, il compilatore genera un file di classe con codice byte.
Di seguito sono riportati i componenti importanti di JRE:
- Caricatori di classi: il caricatore di classi carica varie classi necessarie per eseguire un programma Java. JVM utilizza tre class loader chiamati bootstrap class loader, estensioni class loader e system class loader.
- Byte code verifier: Byte code verifier verifica il bytecode in modo che il codice non disturbi linterprete.
- Interprete: una volta caricate le classi e verificato il codice, linterprete legge il codice riga per riga.
- Run-time: run-time è un sistema utilizzato principalmente nella programmazione per descrivere il periodo di tempo durante il quale un particolare programma è in esecuzione.
- Hardware: una volta compilato il codice Java nativo, viene eseguito su una piattaforma hardware specifica.
In questo modo, il programma Java viene eseguito in JRE.
Come funziona JVM?
Ecco i componenti importanti di JVM:
1) Class Loader
Il class loader è un sottosistema utilizzato per caricamento dei file di classe. Svolge tre funzioni principali vale a dire. Caricamento, collegamento e inizializzazione.
2) Area dei metodi
Larea dei metodi JVM memorizza la struttura della classe come i metadati, il codice per i metodi Java e il pool di runtime costante.
3) Heap
Tutti gli oggetti, gli array e le variabili di istanza sono memorizzati in un heap. Questa memoria è condivisa tra più thread.
4) Stack di linguaggio JVM
Gli stack di linguaggio Java memorizzano le variabili locali ei suoi risultati parziali. Ogni thread ha il proprio stack di lingue JVM, creato contemporaneamente al momento della creazione del thread. Viene creato un nuovo frame quando viene richiamato il metodo e viene rimosso quando il processo di invocazione del metodo è completo.
5) Registri PC
I registri PC memorizzano lindirizzo dellistruzione della macchina virtuale Java, che è attualmente in esecuzione. In Java, ogni thread ha il proprio registro PC separato.
6) Stack di metodi nativi
Gli stack di metodi nativi contengono le istruzioni del codice nativo a seconda della libreria nativa. Alloca memoria su heap nativi o utilizza qualsiasi tipo di stack.
7) Motore di esecuzione
È un tipo di software utilizzato per testare software, hardware o sistemi completi. Il motore di esecuzione del test non trasporta mai alcuna informazione sul prodotto testato.
8) Interfaccia del metodo nativo
Linterfaccia del metodo nativo è un framework di programmazione. Consente al codice Java, in esecuzione in una JVM, di richiamare le librerie e le applicazioni native.
9) Native Method Libraries
Native Libraries è una raccolta di Native Libraries (C, C ++), necessarie per Execution Engine.
Differenza tra JDK, JRE e JVM
Ecco le principali differenze tra JDK e JRE e JVM:
JDK | JRE | JVM |
La forma completa di JDK è Java Development Kit. | La forma completa di JRE è Java Runtime Environment. | La forma completa di JVM è Java Virtual Machine. |
JDK è un kit di sviluppo software per sviluppare applicazioni in Java. | È un pacchetto software che fornisce le librerie di classi Java con i componenti necessari per eseguire il codice Java. | JVM esegue il codice byte Java e fornisce un ambiente per eseguirlo. |
JDK dipende dalla piattaforma. | JRE dipende anche dalla piattaforma. | JVM è indipendente dalla piattaforma. |
Contiene strumenti per lo sviluppo, il debug e il monitoraggio del codice java. | Contiene le librerie di classi e altri file di supporto richiesti da JVM per eseguire il programma. | Gli strumenti di sviluppo software non sono inclusi in JVM. |
È il superset di JRE | È il sottoinsieme di JDK. | JVM è un sottoinsieme di JRE. |
JDK consente agli sviluppatori di creare programmi Java che possono essere eseguiti ed eseguiti da JRE e JVM. | JRE è la parte di Java che crea la JVM. | È il componente della piattaforma Java che esegue il codice sorgente. |
JDK viene fornito con il programma di installazione. | JRE contiene solo lambiente per eseguire il codice sorgente. | JVM in bundle sia nel software JDK che in JRE. |