ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Java Virtual Machine - Wikipedia

Java Virtual Machine

Uit Wikipedia, de vrije encyclopedie

Portaal:Portalenoverzicht
Portaal Javaplatform

Een Java Virtual Machine ofwel JVM is een platformonafhankelijke omgeving voor het uitvoeren van Java-programma's.

Inhoud

[bewerk] Platformonafhankelijkheid

Het platformonafhankelijke concept van Java wordt bewerkstelligd door Java broncode te vertalen (compileren) naar bytecode. Deze bytecode kan op elk willekeurig besturingssysteem waar een JVM voor beschikbaar is, worden uitgevoerd. Als gevolg hiervan wordt ieder Javaprogramma conceptueel geschreven voor maar één platform: de JVM. Dit concept is al zeer oud: in de jaren '70 bestond er het P-Codemechanisme, waarbij Pascalprogramma's naar P-code werden vertaald. Een P-code-interpreter was dan nodig om de programma's uit te voeren. Ook de oude Microsoft Basicinterpreters vertalen hun Basiccode eerst naar een tussentaal om de uitvoering te versnellen.

[bewerk] Virtuele machine

Conceptueel is de JVM een echte computer, alleen niet uitgevoerd in hardware. De machine beschikt over opslagcapaciteit, een eigen geheugenmodel, een gespecificeerd gedrag van zijn rekeneenheid en een interne machinetaal. Ook is de basismachine conceptueel uitbreidbaar met nieuwe mogelijkheden en modules, die overeenkomen met klassen, API's en dergelijke -- opgesteld in bytecode. Bekende uitbreidingen van de machine betreffen netwerkcommunicatie (java.io- en java.net-pakketten, samen conceptueel te beschouwen als een netwerkkaart voor de machine) en de API's gericht op kleine apparaten (J2ME-uitbreidingen).

[bewerk] Interpreter

Een direct gevolg van het gebruik van het Virtual Machinemodel voor het uitvoeren van computerprogramma's is dat er voor het uitvoeren van ieder programma een extra vertaalslag nodig is ten opzichte van een programma dat direct gecompileerd wordt naar de machinetaal van de onderliggende hardware. Beide modellen kennen een compilatie naar machinetaal (hardwaretaal of machinetaal voor de JVM), maar de JVM moet daarna ook zijn interne machinetaal doorvertalen naar de machinetaal van de onderliggende hardware. Dit betekent dat er altijd ergens een snelheidsverschil ligt in het uitvoeren van een programma op een JVM ten opzichte van uitvoering direct op de hardware.

[bewerk] Populariteit

De JVM is echter een bijzonder populaire virtuele machine, behorend bij een populair platform dat ook stevig in opkomst is op allerlei gebieden. Dit is een drijfveer gebleken voor het ontwikkelen van allerlei technieken en trucs om het uitvoeren van programma's op een virtuele machine te versnellen. Specifiek voor de JVM geldt dat deze, sinds zijn eerste bestaan als interpreter, doorontwikkeld is tot een Just-In-Time Compiler -- een machine die grote stukken code voorcompileert en voorgecompileerd opslaat in het werkgeheugen en in een cache om vertaalwerk te sparen. Daarnaast is de machine uitgerust met modules om bij programma's die langer lopen (een typisch gedrag van serverprogramma's) de vertaalde versie van het programma aan te passen aan het runtimegebruik van dat programma. Hierdoor zijn vaak optimalisaties mogelijk die in een "normaal" gecompileerd programma niet mogelijk zijn, omdat er bij het uiteindelijke gebruik geen mogelijkheid meer bestaat om in te grijpen in de manier waarop de volledige vertaling van het programma opgesteld wordt.

[bewerk] Gebruik JVM voor andere talen

De JVM is in principe bedoeld voor het uitvoeren van programma's opgesteld in de Javaprogrammeertaal. De combinatie van een virtuele machine met een grote, standaard klassenbibliotheek zoals die bij een JVM hoort, is echter zeer aantrekkelijk gebleken voor de makers van (runtimesystemen voor) andere programmeertalen. Zo zijn er aanzienlijke aantallen compilers voor allerlei talen die naar bytecode vertalen om de platformonafhankelijkheid en/of de klassenbibliotheek van de JVM te benutten. Ook zijn er versies van interpreters voor bekende scripttalen (zoals Ruby en Python) en systemen (zoals Macromedia Flex) die volledig geïntegreerd zijn met de JVM. Het resultaat is dat de JVM -- zij het onbedoeld -- een evenbeeld is geworden van het .NET-platform wat betreft de openheid richting een veelheid aan programmeertalen.

[bewerk] Beschikbaarheid

Een JVM is voor nagenoeg alle besturingssystemen beschikbaar, zoals:

[bewerk] Bronnen, noten en/of referenties

Bronnen, noten en/of referenties:


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -