對于剛剛接觸和Java培訓(xùn)的學(xué)員來說,編寫一個java程序是很困難的,因為java的運(yùn)行原理是很復(fù)雜的,如果說你沒有把這些東西屢清楚的話,那么你想要要用java來開發(fā)出一個程序的話是非常的難的。今天達(dá)內(nèi)科技就來和大家說說java培訓(xùn)開發(fā)運(yùn)行的原理有哪些?
要了解java程序運(yùn)行原理,首先需要了解知道jre、jdk、jvm這三者是什么,他們之間又有什么聯(lián)系。
JRE(JavaRuntimeEnvironment,Java運(yùn)行環(huán)境),也就是Java平臺。所有的Java 程序都要在JRE下才能運(yùn)行。
JDK(Java Development Kit,java開發(fā)工具包)是程序開發(fā)者用來編譯、調(diào)試java程序用的開發(fā)工具包。JDK工具也是Java程序,也需要JRE才能運(yùn)行。為了保持JDK的獨(dú)立性和完整性,在JDK的安裝過程中,JRE也是安裝的一部分。所以,在JDK的安裝目錄下有一個名為jre的目錄,用于存放JRE文件。
JVM(JavaVirtualMachine,Java虛擬機(jī))是JRE的一部分。它是一個虛構(gòu)出來的計算機(jī),是通過在實際的計算機(jī)上仿真模擬各種計算機(jī)功能來實現(xiàn)的。JVM有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。Java語言重要的特點就是跨平臺運(yùn)行。使用JVM就是為了支持與操作系統(tǒng)無關(guān),實現(xiàn)跨平臺。
Java培訓(xùn)開發(fā)的運(yùn)行大致分為以下三步:編寫源文件、編譯以及運(yùn)行。
1、編寫源文件
編寫的代碼,稱為“源代碼”或“源碼”。一般情況下,會把源代碼保存到后綴名為.java的文本文件里,這樣的文件叫源文件。 為了方便,會保持文件名與類的名字一致(包括大小寫)。
2、編譯
源文件是程序員編寫的,能夠輕松識別每一行代碼的意思,但是,在計算機(jī)中,CPU只能識別二進(jìn)制指令。所以,現(xiàn)在要做的工作就是,需要在源文件和計算機(jī)指令之間進(jìn)行轉(zhuǎn)換。由于Java語言的結(jié)構(gòu)和特性,設(shè)計者們先將源文件轉(zhuǎn)換成一種特殊的二進(jìn)制文件,然后將這個二進(jìn)制文件交給Java運(yùn)行時環(huán)境(JRE)去執(zhí)行。轉(zhuǎn)換成二進(jìn)制文件的過程,叫做編譯(這個過程使用了 javac 命令),生成的二進(jìn)制文件,叫做字節(jié)碼文件(后綴名是 .class )。如Test.java經(jīng)過編譯就會生成Test.class。這個過程全部由Java編譯器自動完成,不需要程序員進(jìn)行任何特殊操作。
3、運(yùn)行
Java培訓(xùn)程序的開與運(yùn)行原理,并不是將字節(jié)碼文件(.class文件)簡單的交給操作系統(tǒng)去執(zhí)行,那是因為不同的操作系統(tǒng)中數(shù)據(jù)的大小、范圍和計算方式有很大不同,會導(dǎo)致同一段代碼在不同系統(tǒng)之間運(yùn)行效果差別很大,這不是設(shè)計者們想要看到的。