|
Mnoho přátel může být jako já, kteří používají JAVA už dlouho, ale spojení a rozdíly mezi JDK, JRE a JVM byly vždy nejasné. Dnes napíšu tento článek, abych rozjasnil vztah mezi těmito třemi.
JDK : Java Development ToolKit. JDK je jádrem celé JAVA, včetně Java Runtime Envirnment, řady Java nástrojů (javac/java/jdb atd.) a Java knihoven (tj. Java API zahrnují rt.jar). Nejběžnější JDK je JDK vydaný společností Sun, kromě Sunu existuje mnoho firem a organizací, které vyvinuly vlastní JDK, například zahraniční společnosti IBM vyvinuly svůj vlastní JDK, domácí Taobao také vyvinulo svůj vlastní JDK, různé organizace vyvinuly své vlastní JDK, aby dosáhly zlepšení v některých aspektech a přizpůsobily se svým potřebám, například IBM JDK je považován za mnohem efektivnější než JDK od SUN. Ale každopádně musíme nejdřív zvládnout základní Sun JDK. Existují tři verze JDK: J2SE, standardní edice, standardní edice, je verze, kterou obvykle používáme J2EE, enterpsise edation, enterprise edition, a tuto JDK používáme k vývoji J2EE aplikací J2ME, micro edction, hlavně používaná pro Java aplikace na mobilních zařízeních, embedded zařízeních
Často používáme JDK pro označení Java API, Java API je aplikační programovací rozhraní Javy, ve skutečnosti jde o některé java třídy napsané našimi předchůdci, včetně důležitých jazykových struktur a základní grafiky, síťových a souborových I/O atd., které nazýváme našimi předchůdci v našich vlastních programech jako základ pro náš vlastní vývoj. Samozřejmě, stále více je knihoven třetích stran s lepším výkonem nebo výkonnějšími funkcemi.
JRE: Java Runtime Enviromental. Jinými slovy, všechny Java programy musí být pod JRE, aby mohly běžet. Obsahuje základní knihovny JVM a JAVA a podpůrné soubory. Ve srovnání s JDK nezahrnuje vývojové nástroje – kompilátory, ladicí nástroje a další nástroje.
JVM: Java Virtual Mechinal (JAVA Virtual Machine). JVM je součástí JRE, což je fiktivní počítač implementovaný simulací různých počítačových funkcí na skutečném počítači. JVM má vlastní kompletní hardwarovou architekturu, jako jsou procesory, zásobníky, registry atd., a také odpovídající instrukční systém. Hlavní úlohou JVM je interpretovat vlastní instrukční sadu (tj. bajtkód) a mapovat ji na instrukční sadu lokálního CPU nebo na systémové volání operačního systému. Java běží napříč platformami, což je ve skutečnosti jiný operační systém, využívající odlišná JVM mapovací pravidla, aby byl nezávislý na operačním systému a zcela napříč platformami. JVM se nezajímá o zdrojové soubory Javy na vyšší úrovni, zajímají ho jen soubory tříd generované zdrojovými soubory. Soubor tříd se skládá z instrukční sady JVM, tabulky symbolů a některých doplňkových informací. Následující obrázek poskytuje dobrý přehled o vztahu mezi JDK, JRE a JVM:
Skutečná situace našeho vývoje je taková, že poté, co vyvineme vlastní program JAVA pomocí JDK (nazývaného JAVA API), zkompilujeme naše textové java soubory do bajtkódu JAVA přes kompilátor (javac) v JDK, spustíme tyto bajtkódy JAVA na JRE, JVM je analyzuje a mapuje je na instrukční sadu CPU nebo systémové volání operačního systému.
|