Siirry sisältöön

Java-virtuaalikone

Wikipediasta
Tämä on arkistoitu versio sivusta sellaisena, kuin se oli 29. helmikuuta 2020 kello 19.21 käyttäjän Ipr1 (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 virtuaalikone, jonka avulla voidaan ajaa Javalla tai eräillä muilla ohjelmointikielillä tehtyjä ohjelmia, jotka on käännetty Java-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. [1]

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 ja OpenJ9.

Android-käyttöjärjestelmää käyttävät järjestelmät kääntävät ohjelmat Android Runtime (ART) -ajoympäristölle (aiemmin Dalvik-virtuaalikoneelle).[2][3]

Lähteet

  1. 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.
  2. Experimental Google ART runtime in Android KitKat can bring twice faster app executions phonearena.com. 7.11.2013. Viitattu 29.2.2020. (englanniksi) 
  3. Platform Architecture developer.android.com. Viitattu 29.2.2020. (englanniksi)