JVM | |
---|---|
Vývojář | Sun Microsystems |
Bitová hloubka | 32 (64 s Java 9) |
Prezentováno | 1994 |
Verze | 18.0.1.1 [1] |
Typ | Stohovací stroj s vyhrazeným přístupem do paměti |
Pořadí bajtů | big-endian |
Registry | |
obecný účel | Zásobník operandů pro každou metodu (až 65535 operandů) a lokální proměnné metody (až 65535) |
Java Virtual Machine (zkráceně Java VM , JVM ) - Java virtual machine - hlavní část exekučního systému Java , tzv. Java Runtime Environment ( JRE ). Java Virtual Machine spouští bajtový kód Java , který byl dříve vygenerován ze zdrojového kódu programu Java kompilátorem Java ( javac ). JVM lze také použít ke spouštění programů napsaných v jiných programovacích jazycích . Zdrojový kód Ada lze například zkompilovat do bajtkódu Java, který pak může JVM spustit.
JVM je klíčovou součástí platformy Java. Protože virtuální stroje Java jsou dostupné pro mnoho hardwarových a softwarových platforem, lze na Javu pohlížet jako na middleware i jako samostatnou platformu. Použití jednoho bajtkódu pro mnoho platforem umožňuje Javu popsat jako „zkompilujte jednou, spusťte kdekoli“ (zkompilujte jednou, spusťte kdekoli).
Virtuální stroje Java obvykle obsahují interpret bajtového kódu, avšak pro zlepšení výkonu mnoho strojů také používá JIT kompilaci často prováděných fragmentů bajtového kódu do strojového kódu .
V roce 1996 Sun vydal první verzi dokumentu JVM Blue Book , který popisoval specifikaci pro virtuální stroj Java, který se stal de facto průmyslovým standardem pro platformu Java. Díky tomuto dokumentu se objevily alternativní implementace JVM, které jsou „ vývojem od nuly “ ( angl. clean room design ). Příkladem je Kaffe .
Počínaje J2SE 5.0 jsou změny specifikace JVM generovány podle formalizovaných přání zúčastněných stran. Proces provádění změn specifikací JVM se nazývá Java Community Process .
JVM dostupný ve zdroji Sun C se nazývá KVM (Kilo Virtual Machine) a je dostupný na jejich webových stránkách.
Na počátku vývoje platformy „Java“ byly dvě konkurenční implementace Java VM:
„Microsoft Java VM“ však nebyl plně kompatibilní se specifikací popsanou společností Sun v „modré knize JVM“ a měl značné problémy s výkonem a zabezpečením při velkém pracovním zatížení (s velkým počtem souběžně běžících vláken).
Sun považoval tuto situaci za nepřijatelnou a rozhodl se, že Microsoft záměrně diskredituje a zprofanuje platformu Java distribucí své verze Java Virtual Machine, která má výše uvedené nevýhody. Na tomto základě Sun opakovaně žaloval Microsoft – a Microsoft byl zbaven následujících práv na implementaci:
Někteří počítačoví recenzenti se domnívají, že tvrdý postoj Sunu k Javě mohl Microsoftu poskytnout další pobídku k vývoji vlastního řešení pro Windows: „ .NET Framework “.
V roce 2001 , s cílem vyvinout standard pro desktopové aplikace pro více platforem , IBM spustila open source projekt: „Eclipse“ .
Rámec „Eclipse“ byl založen na předchozím uzavřeném vývoji: „VisualAge“ od IBM . IBM se podařilo vyvážit zájmy svobodné komunity a zájmy podnikání (jejich zájmy) v Eclipse Public License , uznané Free Software Foundation .
Projekt se úspěšně rozvíjí, je využíván v průmyslu, z velké části se oddělil od IBM v nezávislý (viz "Eclipse Foundation" ).
Sun zůstává v opozici vůči Eclipse Foundation , stejně jako vůči Microsoftu. Formálně zůstává hlavní příčinou kontroverzí knihovna „Standard Widget Toolkit“ (SWT), která je v rozporu s konceptem virtuálního stroje Sunu a přenositelností Java aplikací.
Programy určené ke spuštění na JVM musí být zkompilovány ve standardizovaném přenosném binárním formátu, který je obvykle reprezentován jako soubory ".class". Program se může skládat z mnoha tříd umístěných v různých souborech. Pro snazší hostování velkých programů lze některé soubory „.class“ sbalit dohromady do takzvaného souboru „.jar“ (zkratka pro „Java Archive“).
JVM spouští soubory ".class" a ".jar" a emuluje instrukce v nich uvedené následujícími způsoby:
V dnešní době se kompilace JIT používá ve většině JVM k dosažení vyšší rychlosti. Existují také předem připravené kompilátory, které umožňují vývojářům aplikací překompilovat soubory tříd do nativního kódu platformy.
Jako většina virtuálních strojů má Java Virtual Machine architekturu orientovanou na zásobník, která je společná pro mikrokontroléry a mikroprocesory .
JVM - instance JRE (Java Runtime Environment), která se aktivuje při spouštění programů Java; po dokončení provádění je tato instance odstraněna sběračem odpadu. JIT je ta část Java Virtual Machine, která se používá k urychlení spouštění aplikací; JIT kompiluje ty části bajtkódu, které mají stejnou funkcionalitu ve stejnou dobu, což zkracuje čas potřebný ke kompilaci.
Java Virtual Machines ( srovnání ) | |
---|---|
Sun , Oracle | |
Hlavní implementace | |
Vložené |
|
jiný | |
Nepodporováno |
Jáva | |
---|---|
Platformy | |
Sun Technologies | |
Klíčové technologie třetích stran | |
Příběh |
|
Vlastnosti jazyka | |
Skriptovací jazyky |
|
Java konference |
|
C programovací jazyk | |
---|---|
Kompilátory |
|
Knihovny | |
Zvláštnosti | |
Někteří potomci | |
C a další jazyky |
|
Kategorie:C programovací jazyk |