JDK contro JRE contro JVM in Java - Differenza tra loro
Differenza chiave tra JDK, JRE e JVM
- JDK è un kit di sviluppo software mentre JRE è un pacchetto software che consente Java programma da eseguire, mentre JVM è un ambiente per l'esecuzione del bytecode.
- La forma completa di JDK è Java Development Kit, mentre la forma completa di JRE lo è Java Runtime Environment, mentre la forma completa di JVM lo è Java Macchina virtuale.
- JDK e JRE dipendono dalla piattaforma, mentre JVM è indipendente dalla piattaforma a livello di bytecode, ma dipende dalle implementazioni specifiche della piattaforma.
- JDK contiene strumenti per lo sviluppo, il debug, ecc. JRE contiene librerie di classi e altri file di supporto, mentre gli strumenti di sviluppo software non sono inclusi in JVM.
- JDK viene fornito con il programma di installazione, d'altra parte, JRE contiene solo l'ambiente per eseguire il codice sorgente mentre JVM è incluso sia nel software JDK che in JRE.
Cos'è JDK?
JDK è un ambiente di sviluppo software utilizzato per creare applet e Java applicazioni. La forma completa di JDK è Java Kit di sviluppo. Java gli sviluppatori possono usarlo su Windows, macOS, Solarise Linux. JDK li aiuta a programmare ed eseguire Java programmi. È possibile installare più di una versione JDK sullo stesso computer.
Cos'è JRE?
JRE è una parte di software progettata per eseguire altri software. Contiene le librerie di classi, la classe del caricatore e la JVM. In termini semplici, se vuoi correre Java programma hai bisogno di JRE. Se non sei un programmatore, non è necessario installare JDK, ma solo JRE per funzionare Java programmi. Tuttavia, tutte le versioni JDK vengono fornite in bundle Java Runtime Environment, quindi non è necessario scaricare e installare JRE separatamente sul tuo PC. La forma completa di JRE è Java Ambiente di esecuzione.
Cos'è JVM?
JVM è un motore che fornisce un ambiente runtime per gestire il Java Codice o applicazioni. Si converte Java bytecode in linguaggio macchina. JVM fa parte di Java Esegui l'ambiente (JRE). Non può essere scaricato e installato separatamente. Per installare JVM, è necessario installare JRE. La forma completa di JVM è Java Macchina virtuale.
In molti altri linguaggi di programmazione, il compilatore produce codice macchina per un sistema specifico. Tuttavia, Java il compilatore produce codice per una macchina virtuale chiamata JVM.
Perché usare JDK?
Ecco i motivi importanti dell'utilizzo di JDK:
- JDK contiene gli strumenti necessari per scrivere Java programmi e JRE per eseguirli.
- Include un compilatore, Java lanciatore di applicazioni, visualizzatore di applet, ecc.
- Il compilatore converte il codice scritto Java in codice byte.
- Java l'utilità di avvio dell'applicazione apre un JRE, carica la classe necessaria ed esegue il suo metodo principale.
Perché utilizzare JRE?
Ecco i motivi importanti dell'utilizzo di JRE:
- JRE contiene librerie di classi, JVM e altri file di supporto. Non contiene alcuno strumento per Java sviluppo come un debugger, un compilatore, ecc.
- Utilizza classi di pacchetti importanti come math, swingetc, util, lang, awt e librerie runtime.
- Se devi scappare Java applet, è necessario che JRE sia installato nel sistema.
Perché JVM?
Ecco i motivi importanti dell'utilizzo di JVM:
- JVM fornisce una modalità di esecuzione indipendente dalla piattaforma Java codice sorgente.
- Ha numerose librerie, strumenti e framework.
- Una volta che corri Java programma, puoi eseguirlo su qualsiasi piattaforma e risparmiare molto tempo.
- JVM viene fornito con il compilatore JIT (Just-in-Time) che converte Java codice sorgente in linguaggio macchina di basso livello. Pertanto, funziona più velocemente come un'applicazione normale.
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 l'ambiente per lo sviluppo e l'esecuzione Java codice sorgente.
- Può essere installato su Windows, Unix e sistemi operativi Mac.
- L'operatore Diamond può essere utilizzato per specificare un'interfaccia di tipo generico invece di scrivere quella esatta.
Caratteristiche di JRE
Ecco le caratteristiche importanti di JRE:
- Java Runtime Environment è un insieme di strumenti utilizzando i quali viene effettivamente eseguita la JVM.
- JRE contiene la tecnologia di distribuzione, incluso Java Inizio Web e Java Collegare.
- Gli sviluppatori possono facilmente eseguire il codice sorgente in JRE, ma non possono scrivere e compilare il file Java .
- Include librerie di integrazione come Java Connettività al database (JDBC), Invocazione di metodi remoti (RMI), Java JNDI (Naming and Directory Interface) e altro ancora.
- JRE ha JVM e Java Client della macchina virtuale HotSpot.
Caratteristiche della JVM
Ecco le caratteristiche importanti di JVM:
- Ti consente di eseguire applicazioni in un ambiente cloud o sul tuo dispositivo.
- Java La macchina virtuale 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 Ambiente di esecuzione.
- JDK e JRE contengono entrambi Java Macchina virtuale.
- Può eseguire il programma Java riga per riga, quindi è anche chiamato interprete.
- JVM è facilmente personalizzabile, ad esempio è possibile allocarvi memoria minima e massima.
- È indipendente dall'hardware e dal sistema operativo. Quindi, puoi scrivere un programma Java una volta ed eseguirlo ovunque.
Come funziona JDK?
Ecco i componenti importanti di JDK:
- JDK e JRE: JDK consente ai programmatori di creare core Java programmi che possono essere eseguiti da JRE, che includevano JVM e librerie di classi.
- Biblioteche di classe: È un gruppo di librerie caricabili dinamicamente che Java il programma può chiamare in fase di esecuzione.
- Compilatori: È una Java programma che accetta file di testo degli sviluppatori e viene compilato in Java file di classe. È la forma comune di output fornita dal compilatore, che contiene Java codice byte. In Java, è il compilatore principale Javac.
- Debug: Il debugger è un file Java programma che consente agli sviluppatori di testare ed eseguire il debug Java programmi.
- Javadottore: JavaDoc è la documentazione realizzata da Sun Microsystems per il Java. JavaDoc può essere utilizzato per generare la documentazione API in un file HTML dal programma sorgente
Come funziona JRE?
JRE ha con sé un'istanza di JVM, classi di libreria e strumenti di sviluppo. Una volta che scrivi e compili Java codice, il compilatore genera un file di classe con codice byte.
Ecco i componenti importanti di JRE:
- Caricatori di classi: Il caricatore di classi carica varie classi necessarie per eseguire a Java programma. JVM utilizza tre caricatori di classi denominati caricatore di classi bootstrap, caricatore di classi di estensioni e caricatore di classi di sistema.
- Verificatore del codice byte: Il verificatore del bytecode verifica il bytecode in modo che il codice non disturbi l'interprete.
- Interprete: Una volta caricate le classi e verificato il codice, l'interprete legge il codice riga per riga.
- Tempo di esecuzione: Il runtime è un sistema utilizzato principalmente nella programmazione per descrivere il periodo di tempo durante il quale un particolare programma è in esecuzione.
- Hardware: Una volta compilato Java codice nativo, funziona su una piattaforma hardware specifica.
In questo modo, il Java il programma viene eseguito in JRE.
Come funziona la JVM?
Ecco i componenti importanti di JVM:
1) Caricatore di classi
Il class loader è un sottosistema utilizzato per caricare i file di classe. Esegue tre funzioni principali, ovvero caricamento, collegamento e inizializzazione.
2) Area Metodo
L'area del metodo JVM memorizza la struttura della classe come i metadati, il codice per Java metodi e il pool di runtime costante.
3) Mucchio
Tutti gli oggetti, gli array e le variabili di istanza sono archiviati in un heap. Questa memoria è condivisa tra più thread.
4) Stack di linguaggi JVM
Java Gli stack linguistici memorizzano le variabili locali e i relativi risultati parziali. Ogni thread ha il proprio stack di linguaggi JVM, creato contemporaneamente alla creazione del thread. Un nuovo frame viene creato quando viene richiamato il metodo e viene rimosso al termine del processo di chiamata del metodo.
5) Registri PC
I registri del PC memorizzano l'indirizzo del Java istruzione della macchina virtuale attualmente in esecuzione. In Java, ogni thread ha il suo registro PC separato.
6) Stack di metodi nativi
Gli stack di metodi nativi mantengono l'istruzione del codice nativo che dipende dalla 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 contiene mai alcuna informazione sul prodotto testato.
8) Interfaccia del metodo nativo
La Native Method Interface è un framework di programmazione. Permette Java codice, che viene eseguito in una JVM per essere chiamato da librerie e applicazioni native.
9) Librerie di metodi nativi
Native Libraries è una raccolta di Native Libraries (C, C++), necessari al motore di esecuzione.
Differenza tra JDK, JRE e JVM
Ecco le principali differenze tra JDK, JRE e JVM:
JDK | JRE | JVM |
---|---|---|
La forma completa di JDK è Java Kit di sviluppo. | La forma completa di JRE è Java Ambiente di esecuzione. | La forma completa di JVM è Java Macchina virtuale. |
JDK è un kit di sviluppo software in cui sviluppare applicazioni Java. | È un pacchetto software che fornisce Java librerie di classi con i componenti necessari per l'esecuzione Java codice. | La JVM viene eseguita Java codice byte 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 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. |
Il JDK consente agli sviluppatori di creare Java programmi che possono essere eseguiti ed eseguiti da JRE e JVM. | Il JRE è la parte di Java che crea la JVM. | È Java componente della piattaforma che esegue il codice sorgente. |
JDK viene fornito con il programma di installazione. | JRE contiene solo l'ambiente per eseguire il codice sorgente. | JVM in bundle sia nel software JDK che in JRE. |