Ano ang Dapat Mong Malaman Tungkol sa Java Virtual Machine?



Saklaw ng blog na ito ang konsepto ng java virtual machine nang detalyado sa mga bahagi ng arkitektura nito at mga pangunahing pagkakaiba sa pagitan ng JVM, JRE at JDK

ang wika ay naging isang higante sa industriya ng IT sa isang mahabang panahon. Mayroon itong ilang mga nangungunang konsepto na ginagawang mas mahusay kaysa sa natitirang wika ng programa. Ang isang tulad ng konsepto ay ang Java virtual machine, sa artikulong ito, malalaman natin ang tungkol sa iba't ibang mga aspeto ng detalye ng virtual machine. Ang sumusunod ay mga paksang tinalakay sa blog na ito:

Ano ang Java Virtual Machine?

Ang Java virtual machine ay isang platform-independiyenteng abstract machine na nagbibigay ng isang runtime environment kung saan ang Java byte code ay naisakatuparan.





Ito ay isang bahagi ng Java runtime environment na nagko-convert ng bytecode ng Java sa wikang nababasa ng machine. Pangunahing na mayroon kami sa isang programang Java ay talagang tinawag ng Java virtual machine.

jvm - java virtual machine - edureka

Bakit Kailangan Namin ang Java Virtual Machine?

Kailangan namin ang Java virtual machine para sa mga gawain na ginagawa nito na labis na kinakailangan para sa anumang pag-unlad na kinasasangkutan ng Java. Ang sumusunod ay ilang mga gawain na ginagawa ng Java virtual machine.



  • Load ang code
  • Pag-verify ng code
  • Pagpapatupad ng code
  • Nagbibigay ito ng run-time na kapaligiran para sa mga application
  • Lugar ng memorya
  • Nakatakda ang rehistro
  • Nagbibigay ng isang tumpok ng pagkolekta ng basura
  • Pag-uulat ng mga nakamamatay na error
  • Nagbibigay ng a klase format ng file

Sa lahat ng mga pagpapatakbo na ito, ang Java virtual machine ay isang mahalagang bahagi ng pag-unlad ng Java. Subukan nating maunawaan kung paano ito gumagana sa tulong ng arkitektura ng virtual machine ng Java.

Arkitektura ng Virtual Machine ng Java

Ang arkitektura ng virtual machine ng Java ay medyo simple, mayroon itong lugar ng memorya, isang class loader at isang engine ng pagpapatupad kasama ng iba pang mga bahagi. talakayin natin nang detalyado ang bawat isa sa kanila.

ClassLoader

Ito ay isang subsystem na ginagamit upang mai-load ang mga file ng klase. Tuwing nagpapatakbo kami ng isang programa sa java, ito ay unang na-load ng ClassLoader. ang pangunahing pag-andar ay nagsasama ng pagsisimula, pag-link at paglo-load. Ang mga sumusunod ay ang built-in na mga classloader sa Java.



    • Bootstrap ClassLoader - Ito ang sobrang klase ng Extension ClassLoader na naglo-load ng file na rt.jar.

    • Extension ClassLoader - Naglo-load ito ng mga file ng garapon na matatagpuan sa direktoryo.

    • System / Application ClassLoader - Naglo-load ito ng mga classfile mula sa classpath.

    • Nilo-load ang Operation - Una ang pagkarga ng classLoader ng .class file at bumubuo ng kaukulang data sa binary format na na-save sa lugar ng pamamaraan.

    • Pag-uugnay sa Operasyon - Matapos ang pag-load ay naghahanda, napatunayan at gumagawa ng resolusyon. Inilalaan ng JVM ang memorya para sa mga variable ng klase at pinapasimuno ang memorya sa mga default na halaga. Tinitiyak nito ang kawastuhan ng .class file at kapag nabigo ang pag-verify, nakukuha namin ang error sa pagbubukod ng pagbubukod.

      istraktura ng data ng diksyunaryo sa java
    • Initialization - Ang lahat ng mga static variable ay nakatalaga kasama ang kanilang mga halaga na tinukoy sa code block sa yugtong ito.

Memory ng JVM

  • Lugar ng Paraan - Iniimbak nito ang mga istraktura para sa bawat klase tulad ng code, data ng patlang, runtime pare-pareho na pool, data ng pamamaraan, atbp.

  • Tambak - Ang mga bagay ay inilalaan sa runtime sa tumpok.

  • Mga stack ng Wika ng JVM - Nag-iimbak ito ng mga lokal na variable at resulta. Ginampanan nito ang isang mahalagang papel sa pag-uusap at pagbabalik ng mga resulta. Kailan man tinawag ang isang pamamaraan ay nilikha ang isang frame at nawasak kaagad kapag natapos o natapos ang pag-uusap.

  • Mga Rehistro sa PC - Mayroon itong address o lokasyon ng JVMinstruction na naisakatuparan.

  • Mga stack ng Katutubong Pamamaraan - Ang lahat ng mga katutubong pamamaraan na ginamit sa mga aplikasyon ay naroroon sa mga katutubong stack ng pamamaraan.

  • Pagpapatupad Engine - Naglalaman ang isang engine ng pagpapatupad ng isang virtual na processor, isang interpreter at a JIT tagatala

  • Katutubong Pamamaraan Interface - Ito ay isang na nagbibigay ng

Ngayon na naintindihan na natin ang arkitektura ng JVM, tingnan natin ang proseso ng pagpapatupad at pagsasama-sama ng code.

Proseso ng Pagpapatupad

Ang mga sumusunod na hakbang ay nagaganap habang ang pagpapatupad at pagsasama-sama ng isang Java code.

  • Ang pangunahing pamamaraan ay nakaimbak sa isang solong file at iba pang mga pamamaraan ay nakaimbak sa iba't ibang mga file.
  • Matapos ang pagtitipon, magbibigay ito ng kaukulang .class na mga file na magkakaroon ng byte code nang walang anumang pag-link, hindi katulad ng C.
  • Sa panahon ng pagpapatupad, ang mga file ng klase ay na-verify para sa anumang mga paglabag na gumagamit ng Classloader.
  • Pagkatapos nito, ang bytecode ay nai-convert sa kaukulang katutubong code ng makina. Ito rin ang dahilan kung bakit ang Java ay medyo mabagal.

Ngayong alam na natin, kung paano gumagana ang pagpapatupad, tingnan natin ang pagkakaiba sa pagitan ng JDK, JRE, at JVM.

Pagkakaiba sa Pagitan ng JDK, JRE, At JVM

Ang sumusunod ay ilang mahahalagang pagkakaiba sa pagitan JDK , JVM, at JRE.

  1. Ang JDK ay nangangahulugang Java development kit, at ang JRE ay nangangahulugang Java runtime environment.
  2. Ang JDK ay para sa kaunlaran samantalang ang JRE ay para sa run time environment.
  3. Ang JVM ay isang mahalagang bahagi ng JDK at JRE upang patakbuhin ang anumang programa ng Java.
  4. Ang JVM ay isang mahalagang bahagi ng Java programming at nagbibigay ng kalayaan sa platform.

Dinadala tayo nito sa pagtatapos ng artikulong ito kung saan natutunan namin ang tungkol sa Java virtual machine nang detalyado. Inaasahan kong malinaw ka sa lahat ng naibahagi sa iyo sa tutorial na ito.

Kung nakita mo ang artikulong ito sa 'Java Virtual Machine' na may kaugnayan, suriin ang Edureka , isang mapagkakatiwalaang kumpanya sa online na pag-aaral na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo.

Narito kami upang matulungan ka sa bawat hakbang sa iyong paglalakbay at magkaroon ng isang kurikulum na idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

Kung mahahanap mo ang anumang mga katanungan, huwag mag-atubiling itanong ang lahat ng iyong mga katanungan sa seksyon ng mga komento ng 'Java Virtual Machine' at ang aming koponan ay nalulugod na sagutin.