JVM pret JRE
Java ir starpplatformu programmēšanas valoda. Tas arī atbilst principam “rakstīt vienreiz, palaist jebkur”. Java valodā rakstīto programmu Java kompilators var kompilēt Java baitkodā. Pēc tam baitkodu var izpildīt jebkurā platformā, kurā darbojas JRE (Java Runtime Environment). JRE ietver JVM (Java Virtual Machine), bāzes bibliotēkas (kas ievieš Java API) un citus atbalsta failus. JVM ir abstrakta skaitļošanas iekārta, kas darbojas kā starpnieks starp platformai specifisko JRE un Java kodu.
Kas ir JVM?
JVM ir virtuālās mašīnas veids, ko mašīnas izmanto Java baitkoda izpildei. Saskaņā ar Sun Microsystems (kurš izstrādāja Java, līdz to pavisam nesen iegādājās Oracle), pasaulē ir vairāk nekā 4 miljardi ierīču ar JVM. Konkrētāk, Java virtuālā mašīna ir abstrakta skaitļošanas mašīna, kas ieviesta standarta aparatūrā un operētājsistēmā. Viena no svarīgajām JVM nodrošinātajām funkcijām ir automatizēta izņēmumu apstrāde. Parasti JVM ir pievienota standarta bibliotēku kolekcija. Faktiski JRE ir komplekts, kas satur JVM un klases, kas ievieš Java API. JVM ir ļoti svarīgs komponents, kas nodrošina Java programmēšanas valodas “kompilēt vienreiz, palaist jebkur” raksturu. Kamēr darbojas JVM, jūsu Java kods var darboties virs tā neatkarīgi no iekārtā izmantotās platformas. Tāpēc Java tiek saukta par starpplatformu vai vairāku platformu valodu.
Kas ir JRE?
JRE ir izpildes vide, kurā tiek palaists Java kods. Parasti JRE sastāv no JVM, standarta bāzes klasēm (kas ievieš pamata Java API) un citiem atbalsta failiem. JRE tips un struktūra atšķiras atkarībā no operētājsistēmas un CPU arhitektūras. Kad tiek palaists Java kods, JRE sazināsies ar operētājsistēmu, kas savukārt sazināsies ar atbilstošajiem aparatūras komponentiem. Lai jūsu datorā palaistu jebkuru Java kodu, jūsu sistēmā ir jāinstalē JRE. Tomēr JRE neietver kompilatoru, atkļūdotāju vai citus rīkus, kas nepieciešami Java programmu izstrādei (piemēram, appletviewer un javac). Ja jums ir nepieciešams izstrādāt programmas Java, jums ir nepieciešams JDK (Java Development Kit), kas ietver arī JRE.
Kāda ir atšķirība starp JVM un JRE?
Lai gan ikdienā termini JVM un JRE tiek lietoti kā sinonīmi, tiem ir savas atšķirības. JVM ir virtuāla mašīna, kas darbojas operētājsistēmas augšdaļā, savukārt JRE ir izpildlaika izpildes vide. JVM ir daļa no JRE. JVM specifikācija darbojas kā saikne starp platformai specifisko JRE ieviešanu un standarta Java bibliotēkām. Tāpēc JVM ir vienība, kas programmētājam nodrošina abstrakciju no iekšējās ieviešanas detaļām. Un tas ir atbildīgs par apkopotā baitkoda interpretāciju. Tomēr JVM ir nepieciešamas bāzes bibliotēkas un citi atbalsta faili, lai izpildītu java baitu kodu. Bet dažreiz JRE tiek vienkārši identificēts kā JVM ieviešana.