Java Virtual Machine
![]() |
Ovaj članak ili neka od njegovih sekcija nije dovoljno potkrijepljena izvorima (literatura, web stranice ili drugi izvori). Sporne rečenice i navodi bi mogli, ukoliko se pravilno ne označe validnim izvorima, biti obrisani i uklonjeni. Pomozite Wikipediji tako što ćete navesti validne izvore putem referenci, te nakon toga možete ukloniti ovaj šablon. |
Java Virtual Machine (obično skraćeno na JVM) je virtualna mašina koja može izvršavati Java kompajlirani byte kod, tzv. Javin bytecode. JVM je osnovna komponenta Java platforme, te implementacija JVM-a na različitim hardver i softver platformama omogućava Javu da funkcioniše na tim platformama, tj. zadovoljava jedan od Javinih osnovnih ciljeva da se kod piše na jednom operacionom sistemu, a izvršava na više (engl. write once, run anywhere).
Način Izvršavanja [uredi]
Programi, da bi se izvršavali na JVM-u, moraju biti kompajlirani u standardni binarni format, bytecode, gdje je svaka .java
datoteka kompajlirana u odgovarajuću .class
datoteku. Ako program sadrži više .class
datoteka, one se mogu staviti u jedan JAR datoteku (ili Javinu Arhivu), što olakšava distribuciju tog programa.
Binarny bytecode se izvršava u JVM-u emulacijom JVM-ovih instrukcija putem interpretacije ili primjenom tzv. just-in-time kompajlera (JIT), poput Sun-ovog HotSpot JIT-a.
Javin bytecode je napravljen na bazi staka (en. stack - gomila), tj. JVM-ov interpreter koristi stak-baziranu arhitekturu pri izvršavanju. Za razliku, JIT kompajlira bytcode u mašinski kod (te je brži u toku izvršavanja). Svaka thread ima svoj stak i programski računar.