java源碼經(jīng)過java編譯器后得到的是(java源程序經(jīng)過編譯后的程序的擴(kuò)展名)
本篇文章給大家談?wù)刯ava源碼經(jīng)過java編譯器后得到的是,以及java源程序經(jīng)過編譯后的程序的擴(kuò)展名對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
java源程序編譯過后的文件是什么文件
java源程序文件名是*.java(源代碼就在*.java里)
編譯后為*.class(class是二進(jìn)制文件)
java虛擬機(jī)(JVM)運(yùn)行程序的時(shí)候就是加載class文件,因此說java程序都是由class堆起來的
你知道java的運(yùn)行原理是什么嗎
Java這一語言的執(zhí)行過程也遵循這樣的過程:源代碼---機(jī)器碼。 但是,從源代碼到機(jī)器碼之間,究竟經(jīng)過什么樣的過程,則是Java獨(dú)一無二的了。寬泛地講,Java源代碼(.java)經(jīng)過java編譯器(javac.exe)編譯之后,并沒有直接轉(zhuǎn)化為機(jī)器碼,而是轉(zhuǎn)化成一種中間格式,成為字節(jié)碼(.class),字節(jié)碼再經(jīng)過java虛擬機(jī)轉(zhuǎn)化成特定CPU架構(gòu)的機(jī)器碼。也正是因?yàn)檫@一中間物,java才有所謂的跨平臺(tái)。在windows平臺(tái)上編譯好的字節(jié)碼,copy到linux平臺(tái)后,經(jīng)過為linux而設(shè)計(jì)的Java虛擬機(jī)解釋后即可執(zhí)行??缙脚_(tái)這一特征,是通過字節(jié)碼和JVM來實(shí)現(xiàn)的。
因此,想搞清楚java程序到底是如何運(yùn)行的,重點(diǎn)在于弄明白字節(jié)碼是如何被轉(zhuǎn)化成跟CPU架構(gòu)相關(guān)的機(jī)器碼然后被執(zhí)行的。也就是要理解JVM到底是如何工作的。在了解JVM之前,我們?cè)偬鰜硪幌?,先看看什么是虛擬機(jī)。所謂虛擬機(jī),我是這么理解的:用軟件的方式模擬出跟硬件類似的環(huán)境,比如說寄存器、存儲(chǔ)器等等。當(dāng)然,所有最終的工作還是由原來的CPU來完成。比如說VirtualBox這個(gè)虛擬機(jī)產(chǎn)品,它其實(shí)就是一個(gè)應(yīng)用程序,用某種編程語言編寫的應(yīng)用程序。當(dāng)運(yùn)行這個(gè)應(yīng)用程序時(shí),它會(huì)要求操作系統(tǒng)給它獨(dú)立施展手腳的空間:給我一些內(nèi)存,給我一定的CPU時(shí)間片,然后不用管我了。你可能會(huì)問,寄存器是硬件啊,它怎么能劃分啊,難道是時(shí)間劃分?不是的,像內(nèi)存這樣的硬件,可以給虛擬機(jī)一塊獨(dú)立的內(nèi)存塊,但是寄存器之后的,則需要用“模擬仿真”的方式來模擬。OK,回到Java虛擬機(jī)。到底什么是Java虛擬機(jī),很難有一個(gè)十分明確的定義,狹窄一點(diǎn)說,它就是一個(gè)應(yīng)用程序,大部分用C++編寫的。寬泛地說,它就是執(zhí)行字節(jié)碼的一整個(gè)環(huán)境。
java編譯器產(chǎn)生文件擴(kuò)展名是.class還是.java
java的源文件是.java,經(jīng)過編譯后的文件是.class,.class是二進(jìn)制文件
關(guān)于java源碼經(jīng)過java編譯器后得到的是和java源程序經(jīng)過編譯后的程序的擴(kuò)展名的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。