Siirry sisältöön

Java-virtuaalikone

Wikipediasta
Tämä on arkistoitu versio sivusta sellaisena, kuin se oli 19. helmikuuta 2023 kello 13.01 käyttäjän 0dorkmann (keskustelu | muokkaukset) muokkauksen jälkeen. Sivu saattaa erota merkittävästi tuoreimmasta versiosta.
Yleiskatsaus Java-virtuaalikoneen (JVM) arkkitehtuuriin, joka perustuu Java SE 7 Edition -spesifikaatioon.

Java-virtuaalikone (JVM) on abstrakti kone (virtuaalikone), joka suorittaa sille käännettyjä Java-ohjelmia.[1] Virtuaalikone on toteutettu ohjelmallisesti oikean laitteiston ja käyttöjärjestelmän päällä ajettavaksi.[1] Java-kielellä tehdyt ohjelmat käännetään tavukoodiksi ja suoritetaan JVM:llä oikeassa ympäristössä.[1]

Java-virtuaalikoneen avulla voidaan ajaa myös eräillä muilla ohjelmointikielillä tehtyjä ohjelmia, jotka on käännetty JVM:n tukemaksi tavukoodiksi. JVM-spesifikaatio (engl. JVM Specification) kuvaa JVM-toteutuksen formaaliset vaatimukset. Spesifikaatio varmistaa Java-ohjelmien yhteentoimivuuden eri toteutusmuodoissa, jotta Java-kehitystyökaluja (JDK) käyttävien ohjelmiston kehittäjien ei tarvitse huolehtia taustalla olevan laitteistoalustan erilaisuuksista.

JVM:n tukemat kielet

JVM-kieliä on useita. JRuby ja Jython ovat kenties tunnetuimpia JVM-käännöksiä Ruby ja Python -kielistä. Java-tavukoodiksi kääntyviä vakiintuneita kieliä ovat muun muassa Clojure, Apache Groovy, Scala ja Kotlin. JVM-kielten merkittävä piirre on, että ne ovat yhteensopivia toistensa kanssa, joten esimerkiksi Scala-kirjastoja voidaan käyttää Java-ohjelmien kanssa ja päinvastoin. [2]

Java Runtime Environment

Java Runtime Environment (JRE) on vapaasti saatavilla oleva ohjelmisto, joka sisältää itsenäisen virtuaalikoneen (HotSpot), standardikirjaston (Java Class Library), ja konfigurointiohjelman. Se on yleisin JVM-ajoympäristö.

Avoimen lähdekoodin ympäristöjä ovat OpenJDK GPL-2.0 ohjelmistolisenssillä linkittämispoikkeuksella ja Eclipse (aikaisemmin IBM) OpenJ9.

Android-käyttöjärjestelmää käyttävät järjestelmät kääntävät ohjelmat Android Runtime (ART) -ajoympäristölle, joka kääntää ohjelmaa natiiville konekielelle: aiemmin Androidissa on käytetty Dalvik-virtuaalikonetta.[3][4][5]

Lähteet

  1. a b c The lean, mean, virtual machine javaworld.com. Viitattu 29.2.2020. (englanniksi)
  2. Tim Lindholm, Frank Yellin: Clarifications and Amendments to the Java Virtual Machine Specification, Second Edition The JavaTM Virtual Machine Specification, Second Edition, https://docs.oracle.com/javase/specs/jvms/se6/html/VMSpecTOC.doc.html. Viitattu 18.11.2015.
  3. Experimental Google ART runtime in Android KitKat can bring twice faster app executions phonearena.com. 7.11.2013. Viitattu 29.2.2020. (englanniksi) 
  4. Platform Architecture developer.android.com. Viitattu 29.2.2020. (englanniksi) 
  5. Implementing ART Just-In-Time (JIT) Compiler source.android.com. Viitattu 29.2.2020. (englanniksi)