JVM | |
---|---|
Kehittäjä | Sun Microsystems |
Bittinen syvyys | 32 (64 Java 9:n kanssa) |
Esitetty | 1994 |
Versiot | 18.0.1.1 [1] |
Tyyppi | Pinoamiskone, jossa on oma muistikäyttö |
Tavujärjestys | suurpäämies |
Rekisterit | |
yleinen tarkoitus | Operandipino kullekin menetelmälle (enintään 65535 operandia) ja menetelmän paikalliset muuttujat (jopa 65535) |
Java Virtual Machine ( lyhennetty Java VM , JVM ) - Java- virtuaalikone - Java -suoritusjärjestelmän pääosa ,ns. Java Runtime Environment ( JRE ). Java Virtual Machine suorittaa Java - tavukoodin , jonka Java- kääntäjä ( javac ) on aiemmin luonut Java-ohjelman lähdekoodista . JVM:ää voidaan käyttää myös muilla ohjelmointikielillä kirjoitettujen ohjelmien suorittamiseen . Esimerkiksi Ada - lähdekoodi voidaan kääntää Java-tavukoodiksi, jonka JVM voi sitten suorittaa.
JVM on Java-alustan avainkomponentti. Koska Java-virtuaalikoneita on saatavana monille laitteisto- ja ohjelmistoalustoille, Javaa voidaan pitää sekä väliohjelmistona että erillisenä alustana. Yhden tavukoodin käyttö useilla alustoilla mahdollistaa Java-kuvauksen "käännä kerran, suorita missä tahansa" (käännä kerran, suorita missä tahansa).
Java-virtuaalikoneet sisältävät yleensä tavukooditulkin , mutta suorituskyvyn parantamiseksi monet koneet käyttävät myös JIT -kokoelmaa usein suoritetuista tavukoodifragmenteista konekoodiksi .
Vuonna 1996 Sun julkaisi ensimmäisen version JVM Blue Book -asiakirjasta , jossa kuvattiin Java-virtuaalikoneen spesifikaatiot , josta tuli tosiasiallinen Java-alustan teollisuusstandardi . Tämän asiakirjan ansiosta JVM:lle ilmestyi vaihtoehtoisia toteutuksia, jotka ovat " kehitys tyhjästä " ( eng. clean room design ). Esimerkki on Kaffe .
J2SE 5.0:sta alkaen muutokset JVM-spesifikaatioon generoidaan sidosryhmien muotoiltujen toiveiden mukaan. JVM-spesifikaatioiden muutosprosessia kutsutaan Java Community Process -prosessiksi .
Sunin C - lähteestä saatavilla oleva JVM on nimeltään KVM (Kilo Virtual Machine) ja se on saatavilla heidän verkkosivustollaan.
"Java"-alustan kehittämisen alussa Java VM:stä oli kaksi kilpailevaa toteutusta:
"Microsoft Java VM" ei kuitenkaan ollut täysin yhteensopiva Sunin "JVM blue book" -kirjassa kuvaamien spesifikaatioiden kanssa, ja sillä oli merkittäviä suorituskyky- ja tietoturvaongelmia raskaassa työkuormassa (suuren määrän samanaikaisesti suoritettavia säikeitä).
Sun piti tätä tilannetta mahdottomana hyväksyä ja päätti, että Microsoft tarkoituksella häpäisi ja häpäisi Java-alustaa levittämällä Java Virtual Machine -versiota, jolla on edellä mainitut haitat. Tämän perusteella Sun haastoi toistuvasti Microsoftin oikeuteen - ja Microsoftilta evättiin seuraavat täytäntöönpanooikeudet:
Jotkut tietokonearvioijat ovat ehdottaneet, että Sunin tiukka asenne Javaan on saattanut tarjota Microsoftille lisäkannustimen kehittää oma Windows-ratkaisunsa: " .NET Framework ".
Vuonna 2001 IBM käynnisti avoimen lähdekoodin projektin " Eclipse " tavoitteenaan kehittää standardi monikäyttöisille työpöytäsovelluksille .
"Eclipse" -kehys perustui aikaisempaan suljettuun kehitykseen: IBM:n "VisualAge" . IBM onnistui tasapainottamaan vapaan yhteisön edut ja liiketoiminnan edut (heidän etunsa) Free Software Foundationin tunnustamassa Eclipse Public License -lisenssissä .
Projekti kehittyy menestyksekkäästi, sitä käytetään teollisuudessa, se on suurelta osin eronnut IBM:stä itsenäiseksi (katso "Eclipse Foundation" ).
Sun vastustaa edelleen Eclipse Foundationia ja Microsoftia. Muodollisesti pääasiallinen kiistan syy on edelleen "Standard Widget Toolkit" (SWT) -kirjasto, joka on ristiriidassa Sunin virtuaalikoneen ja Java-sovellusten siirrettävyyden kanssa.
Ohjelmat, jotka on tarkoitettu toimimaan JVM:llä, on käännettävä standardoituun kannettavaan binaarimuotoon, joka yleensä esitetään ".class"-tiedostoina. Ohjelma voi koostua useista luokista, jotka on sijoitettu eri tiedostoihin. Suurten ohjelmien isännöinnin helpottamiseksi jotkin ".class"-tiedostot voidaan pakata yhteen niin kutsuttuun ".jar"-tiedostoon (lyhenne sanoista "Java Archive").
JVM suorittaa ".class"- ja ".jar"-tiedostoja emuloimalla niissä annettuja ohjeita seuraavilla tavoilla:
Nykyään JIT-kokoelmaa käytetään useimmissa JVM-koneissa suuremman nopeuden saavuttamiseksi. On myös etukäteiskääntäjiä, joiden avulla sovelluskehittäjät voivat kääntää luokkatiedostot uudelleen alustan alkuperäiseksi koodiksi.
Kuten useimmat virtuaalikoneet, Java-virtuaalikoneella on pinosuuntautunut arkkitehtuuri, joka on yhteinen mikro -ohjaimille ja mikroprosessoreille .
JVM - JRE :n (Java Runtime Environment) esiintymä, joka tulee toimeen Java-ohjelmia suoritettaessa; Suorituksen päätyttyä jätteenkerääjä poistaa tämän ilmentymän. JIT on se osa Java-virtuaalikonetta, jota käytetään nopeuttamaan sovellusten suorittamista; JIT kääntää ne tavukoodin osat, joilla on samat toiminnot samaan aikaan, mikä lyhentää kääntämiseen kuluvaa aikaa.
Java-virtuaalikoneet ( vertailu ) | |
---|---|
Aurinko , Oraakkeli | |
Tärkeimmät toteutukset | |
Upotettu |
|
muu | |
Ei tuettu |
Java | |
---|---|
Alustat | |
Sun Technologies | |
Kolmannen osapuolen keskeiset tekniikat | |
Tarina |
|
Kielen ominaisuudet | |
Scripting kielet |
|
Java-konferenssit |
|
C-ohjelmointikieli | |
---|---|
Kääntäjät |
|
Kirjastot | |
Erikoisuudet | |
Jotkut jälkeläiset | |
C ja muut kielet |
|
Luokka: C-ohjelmointikieli |