JVM vs JRE
Java yog ib hom lus sib tham sib tham. Nws kuj ua raws li "sau ib zaug, khiav mus nyob qhov twg" txoj cai. Qhov program sau hauv Java tuaj yeem muab tso ua ke rau hauv Java bytecode los ntawm Java compiler. Tom qab ntawd, cov bytecode tuaj yeem raug tua ntawm txhua lub platform uas khiav JRE (Java Runtime Ib puag ncig). JRE suav nrog JVM (Java Virtual Machine), cov tsev qiv ntawv hauv paus (uas siv Java API) thiab lwm cov ntaub ntawv txhawb nqa. JVM yog lub tshuab xam zauv paub daws teeb meem uas ua haujlwm nruab nrab ntawm cov platforms tshwj xeeb JRE thiab Java code.
JVM yog dab tsi?
JVM yog hom tshuab virtual uas siv los ntawm cov tshuab los ua Java bytecode. Raws li Sun Microsystems (uas tsim Java kom txog rau thaum nws tau yuav los ntawm Oracle, tsis ntev los no), muaj ntau tshaj 4 billion JVM enabled pab kiag li lawm nyob rau hauv lub ntiaj teb no. Tshwj xeeb tshaj yog, Java Virtual Tshuab yog lub tshuab xam zauv paub daws teeb uas siv los ntawm cov cuab yeej kho vajtse thiab kev ua haujlwm. Ib qho ntawm cov haujlwm tseem ceeb uas tau muab los ntawm JVM yog automated kev zam tuav. Feem ntau, ib qho kev sau ntawm cov tsev qiv ntawv qauv nrog JVM. Qhov tseeb, JRE yog ib pob khoom uas muaj JVM thiab cov chav kawm uas siv Java API. JVM yog ib qho tseem ceeb heev, uas haum rau "sib sau ib zaug, khiav txhua qhov chaw" ntawm Java programming lus. Ntev npaum li JVM tab tom khiav, koj Java code tuaj yeem khiav saum nws, tsis hais lub platform siv hauv tshuab. Qhov no yog vim li cas Java thiaj li hu ua cross-platform lossis multi-platform lus.
JRE yog dab tsi?
JRE yog qhov chaw ua haujlwm uas Java code khiav. Feem ntau, JRE yog tsim los ntawm JVM, cov qauv hauv paus chav kawm (uas siv lub hauv paus Java API) thiab lwm cov ntaub ntawv txhawb nqa. Hom thiab qauv ntawm JRE sib txawv nyob ntawm qhov kev ua haujlwm thiab CPU architecture. Thaum lub Java code khiav, JRE yuav sib txuas lus nrog lub operating system, uas nyob rau hauv lem yuav tham nrog cov khoom kho vajtse sib txuas. Muaj JRE ntsia ntawm koj lub cev yog qhov yuav tsum tau khiav ib qho java code ntawm koj lub tshuab. Txawm li cas los xij, JRE tsis suav nrog compiler, debugger lossis lwm yam cuab yeej xav tau rau kev txhim kho Java program (xws li appletviewer thiab javac). Yog tias koj xav tau tsim cov kev pabcuam hauv Java, koj yuav tsum muaj JDK (Java Development Kit), uas suav nrog JRE thiab.
Qhov txawv ntawm JVM thiab JRE yog dab tsi?
Txawm hais tias, hauv kev siv txhua hnub, cov lus JVM thiab JRE tau siv sib hloov, lawv muaj qhov sib txawv. JVM yog lub tshuab virtual uas khiav saum lub operating system, thaum JRE yog lub sijhawm ua haujlwm ib puag ncig. JVM yog ib feem ntawm JRE. JVM specification ua raws li kev sib txuas ntawm lub platform tshwj xeeb JRE kev siv thiab cov qauv Java cov tsev qiv ntawv. Yog li ntawd, JVM yog lub koom haum uas muab cov kev paub daws teeb meem los ntawm cov ntsiab lus siv sab hauv rau tus programmer. Thiab nws yog lub luag haujlwm rau kev txhais cov lus sau ua bytecode. Txawm li cas los xij, JVM xav tau cov tsev qiv ntawv hauv paus thiab lwm cov ntaub ntawv txhawb nqa kom ua tiav java bytecode. Tab sis qee zaum, JRE tsuas yog txheeb xyuas raws li kev siv ntawm JVM.