Java è uno dei linguaggi di programmazione più popolari utilizzati oggi negli ambienti di sviluppo. Viene utilizzato principalmente per progetti di sviluppo back-end, sviluppo di giochi e computer desktop e mobile. Continua a leggere e scopri in che modo Java macchine virtuali (JVM), Java tempo di esecuzione (JRE) e Java Development Kit (JDK) svolgono ciascuno un ruolo nel processo di sviluppo di Java. Conoscerà anche il loro rapporto reciproco e le differenze che li contraddistinguono.
Newsletter di settore
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e altro con la newsletter Think. Leggi l'Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
La macchina virtuale Java, o JVM, carica, verifica ed esegue il bytecode Java. È nota come interprete o nucleo del linguaggio di programmazione Java perché esegue la programmazione Java.
JVM è responsabile della conversione del bytecode in codice specifico del computer ed è necessario sia in JDK che in JRE. Dipende inoltre dalla piattaforma e svolge numerose funzioni, tra cui la gestione della memoria e la sicurezza. Inoltre, JVM può eseguire programmi scritti in altri linguaggi di programmazione che sono stati convertiti in bytecode Java.
Java Native Interface (JNI) è spesso indicata in connessione con JVM. JNI è un framework di programmazione che consente al codice Java in esecuzione in JVM di comunicare con (ovvero, chiamare ed essere chiamato da) le applicazioni associate a un componente hardware e a una piattaforma specifica del sistema operativo. Queste applicazioni sono denominate applicazioni native e spesso possono essere scritte in altri linguaggi. I metodi nativi vengono utilizzati per spostare il codice nativo scritto in altre lingue in un'applicazione Java.
La JVM è costituita da tre componenti o sottosistemi principali:
Java Runtime Environment, o JRE, è un insieme di strumenti software responsabili dell'esecuzione del tempo di esecuzione Java sul suo sistema.
JRE utilizza lo spazio dell'heap per l'allocazione dinamica della memoria per gli oggetti Java. JRE viene utilizzato anche in JDB (Java Debugging).
Se un programmatore desidera eseguire un programma Java utilizzando il comando Java, deve installare JRE. Se si tratta solo di installazione (e non di sviluppo o compilazione di codice), è necessario solo JRE.
Oltre alla macchina virtuale Java, JRE è composto da vari altri strumenti software di supporto e caratteristiche per ottenere il massimo dalle sue applicazioni.
Java Development Kit, o JDK, è un kit di sviluppo software che rappresenta un superset di JRE. È il componente fondamentale che consente lo sviluppo di applicazioni Java e applet Java. È specifico della piattaforma, quindi sono necessari programmi di installazione separati per ogni sistema operativo (ad esempio, Mac, Unix e Windows).
JDK contiene tutti gli strumenti necessari per compilare, eseguire il debug ed eseguire un programma sviluppato utilizzando la piattaforma Java. (Vale la pena notare che i programmi Java possono essere eseguiti anche utilizzando la riga di comando.)
JDK include tutti gli strumenti, gli eseguibili e i file binari Java necessari per eseguire i programmi Java. Ciò include JRE, un compilatore, un debugger, un archiviatore e altri strumenti utilizzati nello sviluppo Java.
Java è sinonimo di Java Standard Edition (Java SE) o Core Java. Tutti e tre gli eufemismi si riferiscono alla specifica Java di base che include l'atto di definire tipi e oggetti. Java EE, d'altra parte, fornisce API e viene in genere utilizzato per eseguire applicazioni più grandi. Il contenuto di questo blog è incentrato su Java SE.
Diamo prima un'occhiata a come i tre componenti principali di Java lavorano insieme, e poi possiamo esaminare le differenze. Il diagramma seguente fornisce un'immagine di come JVM, JRE e JDK si integrano nel landscape Java.
Se immagini una palla da baseball aperta, contiene tre componenti principali: il nucleo rotondo imbottito, la parte centrale in lana e cotone e l'esterno in pelle bovina. Una palla senza tutti e tre questi strati non svolgerà la funzione prevista. Proprio come le tre parti fondamentali di una palla da baseball, JVM, JRE e JDK hanno tutte funzioni specifiche. Senza tutti e tre, Java non funzionerà correttamente.
Nel seguente video, Jamil Spain spiega ulteriormente come JRE e JDK si relazionano:
E ora, per le differenze:
Esistono molte tecnologie complementari che possono essere utilizzate per migliorare JVM, JRE o JDK. Le seguenti tecnologie sono tra le più utilizzate:
La macchina virtuale Java (JVM) viene utilizzata per creare, come puoi pensare, macchine virtuali (VM). Le VM sono server che consentono l'esecuzione di più applicazioni sullo stesso hardware fisico sottostante senza influire l'una sull'altra. Ciò consente un migliore utilizzo delle risorse e rende la scalabilità molto più semplice ed economica rispetto all'infrastruttura tradizionale. Le VM sono inoltre facilmente eliminabili grazie alla loro indipendenza. Quando l'applicazione non è più necessaria, è sufficiente disattivare la macchina virtuale.
I contenitori portano questa astrazione al livello successivo e virtualizzano il kernel del sistema operativo. L'assenza del sistema operativo rende i contenitori ancora più leggeri, veloci e flessibili delle VM.
Per molte Organizzazioni, Java rimane una parte fondamentale dello sviluppo di applicazione e fornisce una solida base per la creazione di soluzioni portatili e Scalabili. Può anche svolgere un ruolo chiave nella modernizzazione delle applicazioni nel percorso verso il cloud .
Fasi successive Esplora OpenJDK e IBM Runtimes for Business, che forniscono un supporto commerciale affidabile ed economico per l'implementazione, il monitoraggio e la gestione delle applicazioni Java.
Un servizio single-tenant completamente gestito per lo sviluppo e la distribuzione di applicazioni Java.
Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.
Lo sviluppo di applicazioni cloud significa programmare una volta, iterare rapidamente e distribuire ovunque.