Cosa dovresti sapere su Java Virtual Machine?

Questo blog tratterà il concetto di macchina virtuale java in dettaglio con i componenti della sua architettura e le differenze chiave tra JVM, JRE e JDK

il linguaggio è stato un gigante nel settore IT da molto tempo. Ha alcuni concetti di prim'ordine che lo rendono migliore rispetto al resto del linguaggio di programmazione. Uno di questi concetti è la macchina virtuale Java, in questo articolo impareremo i vari aspetti di macchina virtuale in dettaglio. Di seguito sono riportati gli argomenti discussi in questo blog:

Cos'è Java Virtual Machine?

Java virtual machine è una macchina astratta indipendente dalla piattaforma che fornisce un ambiente di runtime in cui viene eseguito il codice byte Java.





come impostare classpath in java utilizzando il prompt dei comandi

È una parte dell'ambiente runtime Java che converte il bytecode Java in un linguaggio leggibile dalla macchina. Il principale che abbiamo in un programma Java è effettivamente chiamato dalla macchina virtuale Java.

jvm - macchina virtuale java - edureka

Perché abbiamo bisogno di Java Virtual Machine?

Abbiamo bisogno della macchina virtuale Java per le attività che esegue, che sono estremamente necessarie per qualsiasi sviluppo che coinvolga Java. Di seguito sono riportate alcune attività svolte da Java virtual machine.



  • Carica il codice
  • Verifica del codice
  • Esecuzione del codice
  • Fornisce l'ambiente di runtime per le applicazioni
  • Area di memoria
  • Registro impostato
  • Fornisce un mucchio di Garbage Collection
  • Segnalazione degli errori fatali
  • Fornisce un file classe formato del file

Con tutte queste operazioni, la Java virtual machine è parte integrante dello sviluppo Java. Proviamo a capire come funziona con l'aiuto dell'architettura della macchina virtuale Java.

Architettura Java Virtual Machine

L'architettura della macchina virtuale Java è piuttosto semplice, ha un'area di memoria, un caricatore di classi e un motore di esecuzione tra gli altri componenti. discutiamo ciascuno di essi in dettaglio.

ClassLoader

È un sottosistema utilizzato per caricare i file di classe. Ogni volta che eseguiamo un programma in java, viene prima caricato da ClassLoader. la funzione principale include l'inizializzazione, il collegamento e il caricamento. I seguenti sono i classloader incorporati in Java.



    • Bootstrap ClassLoader - È la super classe di Extension ClassLoader che carica il file rt.jar.

    • Estensione ClassLoader - Carica i file jar che si trovano nella directory.

    • Sistema / Applicazione ClassLoader - Carica i file di classe dal classpath.

    • Operazione di caricamento - Per prima cosa il classLoader carica i file .class e genera i dati corrispondenti nel formato binario che viene salvato nell'area del metodo.

    • Operazione di collegamento - Dopo il caricamento prepara, verifica e risolve. JVM alloca la memoria per le variabili di classe e inizializza la memoria sui valori predefiniti. Assicura la correttezza del file .class e quando la verifica fallisce, otteniamo l'errore di eccezione di runtime.

    • Inizializzazione - Tutte le variabili statiche vengono assegnate con i loro valori definiti nel blocco di codice in questa fase.

Memoria JVM

  • Area del metodo - Memorizza le strutture per ogni classe come il codice, i dati del campo, il pool di costanti di runtime, i dati del metodo, ecc.

  • Mucchio - Gli oggetti vengono allocati in fase di esecuzione nell'heap.

  • Stack linguistici JVM - Memorizza variabili locali e risultati. Svolge un ruolo importante nell'invocare e restituire i risultati. Ogni volta che viene richiamato un metodo, viene creato un frame che viene distrutto non appena l'invocazione termina o viene completata.

  • Registri PC - Ha l'indirizzo o la posizione dell'istruzione JVM che viene eseguita.

  • Stack di metodi nativi - Tutti i metodi nativi utilizzati nelle applicazioni sono presenti negli stack dei metodi nativi.

  • Motore di esecuzione - Un motore di esecuzione contiene un processore virtuale, un interprete e un file JIT compilatore.

  • Metodo nativo Interfaccia - È un che fornisce.

Ora che abbiamo compreso l'architettura della JVM, diamo un'occhiata al processo di esecuzione e alla compilazione del codice.

Processo di esecuzione

I seguenti passaggi avvengono durante l'esecuzione e la compilazione di un codice Java.

  • Il metodo principale viene memorizzato in un singolo file e altri metodi vengono memorizzati in file diversi.
  • Dopo la compilazione, fornirà i file .class corrispondenti che avranno il codice byte senza alcun collegamento, a differenza di C.
  • Durante l'esecuzione, i file di classe vengono verificati per eventuali violazioni utilizzando il Classloader.
  • Successivamente, il bytecode viene convertito nel codice macchina nativo corrispondente. Questo è anche il motivo per cui Java è relativamente più lento.

Ora che sappiamo come funziona l'esecuzione, diamo un'occhiata alla differenza tra JDK, JRE e JVM.

Differenza tra JDK, JRE e JVM

Di seguito sono riportate alcune importanti differenze tra JDK , JVM e JRE.

  1. JDK sta per Java development kit e JRE sta per Java runtime environment.
  2. JDK è per lo sviluppo mentre JRE è per l'ambiente di runtime.
  3. JVM è una parte essenziale di JDK e JRE per eseguire qualsiasi programma Java.
  4. JVM è parte integrante della programmazione Java e fornisce indipendenza dalla piattaforma.

Questo ci porta alla fine di questo articolo in cui abbiamo appreso in dettaglio la macchina virtuale Java. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

come utilizzare il browser sqlite

Se hai trovato rilevante questo articolo su 'Java Virtual Machine', dai un'occhiata a Edureka , una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Siamo qui per aiutarti in ogni fase del tuo viaggio e creare un curriculum progettato per studenti e professionisti che vogliono essere uno sviluppatore Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti per concetti Java sia di base che avanzati insieme a vari framework Java come Hibernate e Spring.

Se incontri delle domande, sentiti libero di porre tutte le tue domande nella sezione commenti di 'Java Virtual Machine' e il nostro team sarà lieto di rispondere.