|
Veel vrienden zijn misschien zoals ik en gebruiken al lange tijd JAVA, maar de connectie en het verschil tussen JDK, JRE en JVM zijn altijd vaag geweest. Vandaag zal ik dit artikel schrijven om de relatie tussen de drie uit te zoeken.
JDK: Java Ontwikkelingstoolkit. De JDK is de kern van de gehele JAVA, inclusief de Java Runtime Omgeving, een reeks Java-tools (javac/java/jdb, enz.) en Java-gebaseerde bibliotheken (oftewel, Java API's bevatten rt.jar). De meest gangbare JDK is de JDK die door Sun is uitgebracht; naast Sun zijn er veel bedrijven en organisaties die hun eigen JDK hebben ontwikkeld, zoals buitenlandse IBM-bedrijven die hun eigen JDK hebben ontwikkeld, het binnenlandse Taobao heeft ook zijn eigen JDK ontwikkeld, diverse organisaties hebben hun eigen JDK ontwikkeld om op sommige vlakken verbeteringen te realiseren en zich aan te passen aan hun eigen behoeften, zoals IBM's JDK dat veel efficiënter wordt gezegd dan SUN's JDK. Maar hoe dan ook, we moeten eerst de basis Sun JDK beheersen. Er zijn drie versies van de JDK: J2SE, standaardeditie, standaardeditie, is een versie die we meestal gebruiken J2EE, enterprise-editie, enterprise-editie, waarbij we deze JDK gebruiken om J2EE-applicaties te ontwikkelen, J2ME, micro-edtion, voornamelijk gebruikt voor java-toepassingen op mobiele apparaten, embedded apparaten
We gebruiken vaak JDK om te verwijzen naar Java API, Java API is Java's applicatieprogrammeerinterface, in feite zijn het enkele Java-klassen geschreven door onze voorgangers, waaronder enkele belangrijke taalstructuren en basisgraphics, netwerk- en bestands-I/O, enzovoort; we noemen deze klassen geschreven door onze voorgangers in onze eigen programma's, als basis voor onze eigen ontwikkeling. Natuurlijk zijn er steeds meer bibliotheken van derden met betere prestaties of krachtigere functies tot onze beschikking.
JRE: Java Runtime Omgeving. Met andere woorden, alle Java-programma's moeten onder de JRE staan om te kunnen draaien. Bevat JVM- en JAVA-kernbibliotheken en ondersteunende bestanden. In vergelijking met de JDK bevat het geen ontwikkeltools - compilers, debuggers en andere tools.
JVM: Java Virtual Mechinal (JAVA Virtual Machine). De JVM maakt deel uit van de JRE, een fictieve computer die wordt geïmplementeerd door verschillende computerfuncties op een echte computer te simuleren. JVM heeft een eigen complete hardwarearchitectuur, zoals processors, stacks, registers, enzovoort, en heeft ook een bijbehorend instructiesysteem. De hoofdtaak van de JVM is het interpreteren van zijn eigen instructieset (d.w.z. bytecode) en deze toewijzen aan de instructieset van de lokale CPU of de systeemaanroepen van het besturingssysteem. De Java-taal draait cross-platform, wat eigenlijk een ander besturingssysteem is, met andere JVM-mappingregels om onafhankelijk te zijn van het besturingssysteem en volledig cross-platform. De JVM geeft niet om de hogere Java-bronbestanden, het geeft alleen om de klassebestanden die door de bronbestanden worden gegenereerd. Het class-bestand bestaat uit een JVM-instructieset, een symbooltabel en wat aanvullende informatie. De volgende figuur geeft een goed overzicht van de relatie tussen JDK, JRE en JVM:
De werkelijke situatie van onze ontwikkeling is dat nadat we ons eigen UJAVA-programma hebben ontwikkeld met de JDK (call JAVA API), we onze tekst-javabestanden compileren tot JAVA-bytecode via de compiler (javac) in de JDK, deze JAVA-bytecodes op de JRE uitvoeren, de JVM deze bytecodes parseert en ze mappen aan de CPU-instructieset of de systeemaanroepen van het besturingssysteem.
|