Què heu de saber sobre la màquina virtual de Java?



Aquest bloc tractarà detalladament el concepte de màquina virtual java amb els components de la seva arquitectura i les diferències clau entre JVM, JRE i JDK

el llenguatge ha estat un gegant a la indústria de les TI des de fa molt de temps. Té alguns conceptes de primer nivell que el fan millor que la resta del llenguatge de programació. Un d’aquests conceptes és la màquina virtual Java, en aquest article aprendrem els diversos aspectes de màquina virtual en detall. A continuació es detallen els temes tractats en aquest bloc:

Què és la màquina virtual Java?

La màquina virtual Java és una màquina abstracta independent de la plataforma que proporciona un entorn d'execució en què s'executa el codi de bytes Java.





És una part de l'entorn d'execució de Java que converteix el codi byt de Java en llenguatge llegible per màquina. El principal que tenim en un programa Java és realment anomenat per la màquina virtual Java.

jvm - màquina virtual java - edureka

Per què necessitem una màquina virtual Java?

Necessitem la màquina virtual Java per a les tasques que realitza, que són extremadament necessàries per a qualsevol desenvolupament que impliqui Java. A continuació es detallen algunes de les tasques que fa la màquina virtual Java.



  • Carrega el codi
  • Verificació del codi
  • Execució del codi
  • Proporciona l'entorn de temps d'execució de les aplicacions
  • Zona de memòria
  • Conjunt de registre
  • Proporciona un munt de recollida d'escombraries
  • Notificació dels errors fatals
  • Proporciona un classe format de fitxer

Amb totes aquestes operacions, la màquina virtual Java és una part integral del desenvolupament de Java. Intentem entendre com funciona amb l'ajut de l'arquitectura de màquines virtuals de Java.

Arquitectura de màquines virtuals Java

L’arquitectura de màquines virtuals Java és bastant senzilla, té una àrea de memòria, un carregador de classes i un motor d’execució entre altres components. anem a comentar cadascun d'ells en detall.

ClassLoader

És un subsistema que s’utilitza per carregar fitxers de classe. Sempre que executem un programa en Java, primer el carrega ClassLoader. la funció principal inclou la inicialització, enllaç i càrrega. Els següents són els carregadors de classes integrats a Java.



    • Bootstrap ClassLoader: és la super classe d'Extension ClassLoader que carrega el fitxer rt.jar.

    • Extensió ClassLoader: carrega els fitxers jar situats al directori.

      és-una relació a Java
    • Sistema / Aplicació ClassLoader: carrega els fitxers de classe del classpath.

    • Operació de càrrega - Primer, classLoader carrega els fitxers .class i genera les dades corresponents en format binari que es desa a l'àrea del mètode.

    • Operació d'enllaç: Després de carregar-lo, es prepara, verifica i resol la resolució. JVM assigna la memòria per a variables de classe i inicialitza la memòria als valors predeterminats. Assegura la correcció del fitxer .class i, quan falla la verificació, obtindrem l'error d'excepció en temps d'execució.

    • Inicialització - Totes les variables estàtiques s’assignen amb els seus valors definits al bloc de codi en aquesta fase.

Memòria JVM

  • Àrea de mètode - Emmagatzema les estructures de cada classe com el codi, les dades de camp, l'agrupació constant d'execució, les dades del mètode, etc.

    com utilitzar la plataforma Google Cloud
  • Munt - Els objectes s’assignen en temps d’execució al munt.

  • Piles d'idiomes de JVM: Emmagatzema variables i resultats locals. Té un paper important a l’hora d’invocar i retornar resultats. Sempre que s’invoca un mètode, es crea un marc que es destrueix tan aviat com finalitza o finalitza la invocació.

  • Registres de PC: Té l'adreça o la ubicació de la instrucció JVM que s'està executant.

  • Piles de mètodes natius: Tots els mètodes natius utilitzats a les aplicacions estan presents a les piles de mètodes natius.

  • Motor d'execució - Un motor d'execució conté un processador virtual, un intèrpret i un JIT compilador.

  • Mètode nadiu Interfície - És un que proporciona.

Ara que hem entès l’arquitectura de la JVM, fem una ullada al procés d’execució i compilació de codi.

Procés d’execució

Els passos següents tenen lloc durant l'execució i compilació d'un codi Java.

  • El mètode principal s’emmagatzema en un sol fitxer i altres mètodes s’emmagatzemen en diferents fitxers.
  • Després de la compilació, proporcionarà els fitxers .class corresponents que tindran el codi de bytes sense cap enllaç, a diferència de C.
  • Durant l'execució, els fitxers de classe es comproven si hi ha incompliments mitjançant Classloader.
  • Després d'això, el bytecode es converteix en el codi de màquina natiu corresponent. Aquesta és també la raó per la qual Java és comparativament més lent.

Ara que ja sabem, com funciona l’execució, fem una ullada a la diferència entre JDK, JRE i JVM.

Diferència entre JDK, JRE i JVM

A continuació es mostren algunes diferències importants entre JDK , JVM i JRE.

  1. JDK significa kit de desenvolupament Java i JRE significa entorn d'execució de Java.
  2. JDK és per al desenvolupament, mentre que JRE és per a l'entorn de temps d'execució.
  3. JVM és una part essencial de JDK i JRE per executar qualsevol programa Java.
  4. JVM és una part integral de la programació Java i proporciona independència de plataforma.

Això ens porta al final d’aquest article, on hem conegut detalladament la màquina virtual Java. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.

Si heu trobat rellevant aquest article sobre “Màquina virtual Java”, consulteu l’Edureka , una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

ciència de dades què és

Estem aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate i Spring

Si teniu alguna pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Màquina virtual Java' i el nostre equip estarà encantat de respondre-us.