|
Veliko prijateljev je morda podobnih meni, ki že dolgo uporabljajo JAVA, a povezava in razlike med JDK, JRE in JVM so bile vedno nejasne. Danes bom napisal ta članek, da razjasnim odnos med temi tremi.
JDK : Java razvojni orodni komplet. JDK je jedro celotnega JAVA, vključno z Java Runtime Envirnment, številnimi Java orodji (javac/java/jdb itd.) in Java knjižnicami (tj. Java API-ji vključujejo rt.jar). Najbolj razširjen JDK je JDK, ki ga je izdal Sun; poleg Suna obstaja veliko podjetij in organizacij, ki so razvila svoj JDK, na primer tuja IBM-ova podjetja so razvila svoj JDK, domači Taobao je prav tako razvil svoj JDK, različne organizacije so razvile svoje JDK, da bi izboljšale nekatere vidike in se prilagodile svojim potrebam, na primer IBM-ov JDK naj bi bil veliko bolj učinkovit kot SUN-ov JDK. V vsakem primeru pa moramo najprej obvladati osnovni Sun JDK. Obstajajo tri različice JDK: J2SE, standardna izdaja, standardna izdaja, je različica, ki jo običajno uporabljamo kot J2EE, enterpsise edtion, enterprise edition, pri čemer uporabljamo ta JDK za razvoj J2EE aplikacij J2ME, micro edtion, ki se večinoma uporablja za Java aplikacije na mobilnih napravah in vgrajenih napravah
Pogosto uporabljamo JDK za označevanje Java API-ja, Java API je Java programski vmesnik, pravzaprav gre za nekatere Java razrede, ki so jih napisali naši predhodniki, vključno z nekaterimi pomembnimi jezikovnimi strukturami in osnovno grafiko, omrežnimi in datotečnimi I/O itd., te razrede imenujemo naši predhodniki v naših programih, kot osnovo za naš razvoj. Seveda imamo na voljo vedno več knjižnic tretjih oseb z boljšo zmogljivostjo ali zmogljivejšimi funkcijami.
JRE: Java Runtime Enviromental. Z drugimi besedami, vsi Java programi morajo biti pod JRE, da lahko delujejo. Vključuje osnovne knjižnice JVM in JAVA ter podporne datoteke. V primerjavi z JDK ne vključuje razvojnih orodij – prevajalnikov, razhroščevalnikov in drugih orodij.
JVM: Java Virtual Mechinal (JAVA virtualni stroj). JVM je del JRE, ki je izmišljeni računalnik, ki je implementiran s simulacijo različnih računalniških funkcij na pravem računalniku. JVM ima svojo celotno strojno arhitekturo, kot so procesorji, skladi, registri itd., in ima tudi ustrezen sistem ukazov. Glavna naloga JVM je interpretirati svoj nabor ukazov (tj. bajtkodo) in ga preslikati na nabor ukazov lokalnega procesorja ali sistemske klice operacijskega sistema. Jezik Java deluje na več platformah, kar je pravzaprav drugačen operacijski sistem, ki uporablja drugačna pravila preslikave JVM, da je neodvisen od operacijskega sistema in popolnoma večplatformski. JVM ga ne zanimajo zgornje Java izvorne datoteke, zanimajo ga le razredne datoteke, ki jih ustvarijo izvorne datoteke. Datoteka razreda obsega nabor ukazov JVM, tabelo simbolov in nekaj dodatnih informacij. Naslednja slika daje dober pregled odnosa med JDK, JRE in JVM:
Dejanska situacija našega razvoja je, da po razvoju lastnega JAVA programa z uporabo JDK (imenovanega JAVA API) prevedemo naše besedilne java datoteke v JAVA bajtkodo preko prevajalnika (javac) v JDK, te JAVA bajtne kode izvajamo na JRE, JVM jih analizira in jih preslika na CPU nabor ukazov ali sistemske klice operacijskega sistema.
|