Kas jums jāzina par Java virtuālo mašīnu?



Šajā emuārā tiks detalizēti aplūkots Java virtuālās mašīnas jēdziens ar tā arhitektūras komponentiem un galvenajām atšķirībām starp JVM, JRE un JDK

valoda ir bijusi milzu IT nozarē ļoti ilgu laiku. Tam ir daži augstākās klases jēdzieni, kas padara to labāku par pārējo programmēšanas valodu. Viens no šādiem jēdzieniem ir Java virtuālā mašīna, šajā rakstā mēs uzzināsim par dažādiem aspektiem virtuālā mašīna detalizēti. Šajā emuārā ir apskatītas šādas tēmas:

Kas ir Java virtuālā mašīna?

Java virtuālā mašīna ir no platformas neatkarīga abstrakta mašīna, kas nodrošina izpildlaika vidi, kurā tiek izpildīts Java baitu kods.





Tā ir Java izpildlaika vides daļa, kas pārveido Java baitkodu mašīnlasāmā valodā. Galvenais kas mums ir Java programmā, faktiski izsauc Java virtuālā mašīna.

jvm - java virtuālā mašīna - edureka

Kāpēc mums ir nepieciešama Java virtuālā mašīna?

Mums ir vajadzīga Java virtuālā mašīna tās veicamajiem uzdevumiem, kas ir ārkārtīgi nepieciešami jebkurai Java izstrādei. Tālāk ir norādīti daži uzdevumi, ko veic Java virtuālā mašīna.



  • Ielādē kodu
  • Kodu pārbaude
  • Koda izpilde
  • Tas nodrošina izpildlaika vidi lietojumprogrammām
  • Atmiņas apgabals
  • Reģistru komplekts
  • Nodrošina atkritumu savākšanas kaudzi
  • Ziņošana par letālām kļūdām
  • Nodrošina a klasē faila formāts

Veicot visas šīs darbības, Java virtuālā mašīna ir neatņemama Java izstrādes sastāvdaļa. Mēģināsim saprast, kā tas darbojas, izmantojot Java virtuālās mašīnas arhitektūru.

Java virtuālās mašīnas arhitektūra

Java virtuālās mašīnas arhitektūra ir diezgan vienkārša, tajā starp citiem komponentiem ir atmiņas zona, klases iekrāvējs un izpildes dzinējs. ļaujiet mums detalizēti apspriest katru no tiem.

ClassLoader

Tā ir apakšsistēma, ko izmanto klases failu ielādēšanai. Ikreiz, kad palaižam programmu java, to vispirms ielādē ClassLoader. galvenā funkcija ietver inicializēšanu, sasaisti un ielādi. Tālāk ir iebūvēti Java klases krāvēji.



    • Bootstrap ClassLoader - tā ir paplašinājuma ClassLoader superklase, kas ielādē failu rt.jar.

    • Pagarinājums ClassLoader - tas ielādē direktorijā esošos burku failus.

    • Sistēma / lietojumprogramma ClassLoader - tas ielādē klases failus no klases ceļa.

    • Iekraušanas operācija - Vispirms classLoader ielādē .class failus un ģenerē atbilstošos datus binārā formātā, kas tiek saglabāts metodes apgabalā.

    • Darbības sasaistīšana - Pēc ielādes tas sagatavo, pārbauda un izšķirtspēju. JVM piešķir klases mainīgajiem atmiņu un inicializē atmiņu pēc noklusējuma vērtībām. Tas nodrošina .class faila pareizību un, kad verifikācija neizdodas, tiek parādīta izpildlaika izņēmuma kļūda.

    • Inicializēšana - Visiem statiskajiem mainīgajiem tiek piešķirtas vērtības, kas definētas kodu blokā šajā fāzē.

JVM atmiņa

  • Metodes apgabals - Tajā tiek saglabātas katras klases struktūras, piemēram, kods, lauka dati, izpildlaika nemainīgais kopa, metožu dati utt.

  • Kaudze - Objekti tiek piešķirti kaudzes izpildes laikā.

  • JVM Valodu skursteņi - Tajā tiek glabāti vietējie mainīgie un rezultāti. Tam ir svarīga loma rezultātu atsaukšanā un atgriešanā. Ikreiz, kad tiek izsaukta metode, tiek izveidots rāmis un tas tiek iznīcināts, tiklīdz izsaukums beidzas vai tiek pabeigts.

  • Datoru reģistri - Tam ir izpildāmā JVMinstruction adrese vai vieta.

  • Vietējās metodes skursteņi - Visas vietnēs izmantotās metodes, kas tiek lietotas lietojumprogrammās, ir sastopamas vietējo metožu kaudzēs.

  • Izpildes dzinējs - Izpildes dzinējs satur virtuālo procesoru, tulku un a JIT sastādītājs.

  • Vietējā metode Saskarne - Tas ir kas nodrošina.

Tagad, kad esam sapratuši JVM arhitektūru, apskatīsim izpildes procesu un koda apkopošanu.

Izpildes process

Šīs darbības tiek veiktas Java koda izpildes un apkopošanas laikā.

  • Galvenā metode tiek saglabāta vienā failā, bet citas metodes tiek glabātas dažādos failos.
  • Pēc apkopošanas tas nodrošinās atbilstošos .class failus, kuriem būs baitu kods bez jebkādas saites, atšķirībā no C.
  • Izpildes laikā, izmantojot Classloader, klases faili tiek pārbaudīti, vai nav pārkāpumu.
  • Pēc tam baitkods tiek pārveidots par atbilstošo vietējo mašīnkodu. Tas ir arī iemesls, kāpēc Java ir salīdzinoši lēnāka.

Tagad, kad mēs zinām, kā darbojas izpilde, apskatīsim atšķirību starp JDK, JRE un JVM.

Atšķirība starp JDK, JRE un JVM

Tālāk ir norādītas dažas būtiskas atšķirības JDK , JVM un JRE.

  1. JDK nozīmē Java izstrādes komplektu un JRE nozīmē Java izpildlaika vidi.
  2. JDK ir paredzēts attīstībai, savukārt JRE - darbības laikam.
  3. JVM ir būtiska JDK un JRE sastāvdaļa, lai palaistu jebkuru Java programmu.
  4. JVM ir neatņemama Java programmēšanas sastāvdaļa un nodrošina platformas neatkarību.

Tādējādi mēs nonākam līdz šī raksta beigām, kur mēs esam detalizēti uzzinājuši par Java virtuālo mašīnu. Es ceru, ka jums ir skaidrs viss, kas ar jums ir kopīgots šajā apmācībā.

atšķirības starp hashmap un hashtable

Ja jums šis raksts ir bijis svarīgs sadaļā “Java virtuālā mašīna”, apskatiet vietni Edureka , uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē.

Mēs esam šeit, lai palīdzētu jums katrā solī jūsu ceļojumā un izdomātu mācību programmu, kas paredzēta studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji. Kurss ir paredzēts, lai dotu jums iespēju sākt Java programmēšanu un apmācīt gan Java, gan uzlabotas koncepcijas, kā arī dažādas Java struktūras, piemēram, Hibernate & Spring.

Ja rodas kādi jautājumi, droši uzdodiet visus jautājumus komentāru sadaļā “Java virtuālā mašīna”, un mūsu komanda ar prieku atbildēs.