reklama
Virtuální stroj Java (JVM) je programátorem skutečných jmen, když programujete v jazyce Java. Na rozdíl od toho, co název napovídá, lze se Java Virtual Machine setkat také ve vztahu k jiným programovacím jazykům.
Obecně není nutné vědět, co je Java Virtual Machine, nebo dokonce co dělá, aby bylo možné programovat v Javě. Na druhé straně, seznámení se s vnitřními funkcemi stroje pomáhá zvýšit porozumění a celkový přehled.
Tento článek se věnuje myšlence Java Virtual Machine, co pro vás dělá a některým nejdůležitějším kladům a záporům. I když jsem se snažil udržet to jednoduché a existuje určitě pokročilejší literatura na toto téma, očekává se základní porozumění Java a programování.
Jazyky na vysoké úrovni
Sémantika programovacího jazyka je navržena tak, aby byla blízko našemu přirozenému jazyku, a přitom zůstala stručná a snadno interpretovatelná pro stroj. Jak asi víte, programovací jazyk se zcela liší od strojového kódu, sady pokynů, které počítač používá ke konstrukci a spuštění programu. Tomu říkáme jazyky na vysoké úrovni; jednu nebo více úrovní abstrakce ze strojového kódu.
Než bude moci spustit, musí být nejprve interpretován kód na vysoké úrovni. Mnoho programovacích rozhraní se kompiluje předem (Kompilace AOT) pro konkrétní platformu. Díky tomu je program efektivnější za běhu, ale mnohem méně kompatibilní s různými platformami. Java naopak pracuje s prostředním jazykem zvaným Java bytecode a Virtuální stroj Java.
JVM a Java Bytecode
Když váš projekt Java vytvoří, přeloží zdrojový kód (obsažený v *.Jáva zdrojové soubory) do bajtkódu Java (nejčastěji obsaženého v souborech * .class). Tím se váš kód na vysoké úrovni posune o krok blíže ke strojovému kódu, ale ještě ne tam. Tento bytecode je soubor kompaktních instrukcí; jednodušší pro stroj interpretovat, ale méně čitelný.
Při spuštění aplikace Java v počítači, mobilním telefonu nebo na jakékoli jiné platformě podporující technologii Java v podstatě předáte tento bajtový kód Java Java Virtual Machine. Tlumočník v Java Virtual Machine obvykle začíná kompilovat celý bytecode za běhu, podle principů tzv. kompilace just-in-time. To způsobuje typické, byť často malé zpoždění při otevírání aplikace Java, ale obecně zvyšuje výkon programu ve srovnání s interpretovaná kompilace.
Hlavní výhodou tohoto systému je zvýšená kompatibilita. Protože vaše aplikace běží na virtuálním počítači místo přímo na vašem hardwaru, vývojář může programovat a sestavit jejich aplikaci jednou, která pak může být spuštěna na každém zařízení s implementací Java Virtual Stroj. Tento princip porodil slogan Java: „Napište jednou, běžte všude.”
Pro: Kompatibilita a zvýšená bezpečnost
Kromě kompatibility s kódem přichází Java Virtual Machine s dalšími výhodami. Jedním z nejdůležitějších z nich je relativní zabezpečení programů Java v důsledku Java Virtual Machine. Zabezpečení, což znamená, že program spuštěný ve virtuálním počítači je mnohem méně pravděpodobný, že v případě chyb naruší operační systém uživatele nebo zničí datové soubory.
Con: Různé implementace a ladění JVM
Jedna z hlavních kritik vyjádřených proti kompatibilitě kódu a Java Virtual Machine je kvůli mnoha různým implementacím tohoto jazyka. Vidíte, Java Virtual Machine není jeden kus softwaru. Oracle, majitelé Java, mají implementaci Java Virtual Machine, ale jiní lidé si ji mohou vyrobit, pokud splní různé praktické a smluvní nároky.
Tyto různé implementace znamenají, že váš kód může běžet hladce na jednom Java Virtual Machine, ale na jiném havarovat a vypalovat. Ačkoli v praxi můžete svůj kód napsat jednou a spustit ho všude, někdy i složitější kód stále musí být laděn v různých implementacích Java Virtual Machine, aby byla zajištěna správná funkce.
Máte nějaké zkušenosti s prací s Java Virtual Machine? Pokud ano, je tu něco, co jsem zde zmeškal a které by se mělo zmínit?
Obrázek Kredit: Michaelaw, Dcoetzee
Jsem studentka belgických spisovatelů a počítačových věd. Vždy mi můžete udělat laskavost dobrým nápadem na článek, doporučením knihy nebo nápadem na recepturu.