產(chǎn)生:byte code\x0d\x0a\x0d\x0aJava字節(jié)碼是Java源文件編譯產(chǎn)生的中間文件\x0d\x0ajava虛擬機(jī)是可運(yùn)行java字節(jié)碼的假想計算機(jī) java的跨平臺性也是相對與其他編程語言而言的\x0d\x0a先介紹一下c語言的編譯過程吧先是C語言源程序 也就是c的文件經(jīng)過C編譯程序編譯后,生成windows可執(zhí)行文件exe文件,然后在windows中執(zhí)行。再介紹java的編譯過程先是java源程序擴(kuò)展名為java的文件,由java編譯程序?qū)ava字節(jié)碼文件,就是class文件然后在java虛擬機(jī)中執(zhí)行。機(jī)器碼是由CPU來執(zhí)行的。Java編譯后是字節(jié)碼, 電腦只能運(yùn)行機(jī)器碼。Java在運(yùn)行的時候把字節(jié)碼變成機(jī)器碼。C/C++在編譯的時候直接編譯成機(jī)器碼。
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)麗水,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
要想編譯和運(yùn)行java文件,很簡單,只需要兩個命令:
(1)javac:作用:編譯java文件;使用方法: javac Hello.java ,如果不出錯的話,在與Hello.java 同一目錄下會生成一個Hello.class文件,這個class文件是操作系統(tǒng)能夠使用和運(yùn)行的文件。
(2)java: 作用:運(yùn)行.class文件;使用方法:java Hello,如果不出錯的話,會執(zhí)行Hello.class文件。注意:這里的Hello后面不需要擴(kuò)展名。
下面舉例說明:
假設(shè)我有一個Hello.java文件放在D:\javatest 文件夾下。
打開cmd命令窗口,會出現(xiàn)C:\user\lenovo 這里出現(xiàn)的是系統(tǒng)用戶名,這里我們需要將路徑轉(zhuǎn)移到j(luò)ava文件所在目錄。
緊接著輸入 D:回車,會出現(xiàn)一下界面:
這時候我們需要定位到j(luò)ava文件所在目錄(這里是javatest目錄),接著輸入 cd javatest 回車。
此時進(jìn)入到D:\javatest目錄中,此時的Hello.java文件就在這里
這時候我們就可以用javac命令編譯啦,輸入javac Hello.java回車
這里如果沒有任何提示表示編譯成功,此時打開d:\javatest文件夾你會發(fā)現(xiàn)此時多了一個名為Hello.class的文件,這就是操作系統(tǒng)能夠運(yùn)行的文件。
接著輸入 java Hello回車,你就會看到文件被運(yùn)行的結(jié)果。
這里有幾個要注意的問題
第一:Hello.java中的內(nèi)容是一個類,這個類的名字與.java文件名字必須完全一致。如果不一致將出錯。這里當(dāng)你通過eclipse創(chuàng)建一個類文件的時候你就會理解的更清楚了,這里不贅述。
第二:javac 和 java 命令的使用方法要注意,格式。
第三:要使用這兩命令,必須配置好環(huán)境變量。
舉個簡單的例子,展示了多態(tài)性(Polymorphism):重載(Overloaded)和覆蓋(Overridden)。
多態(tài)性意味著方法可以在不同的時刻表現(xiàn)出不同的形式。在編譯期間,這被稱為方法重載。重載允許相關(guān)的方法可以使用相同的方法名訪問。有時候這被稱為ad hoc polymorphism,與parametric polymorphism 不同。
輸出:
intstringoverriden int
從編譯器的角度講,如何生成能夠正確調(diào)用的函數(shù)的代碼?
靜態(tài)重載(Static overloading)不難實現(xiàn)。當(dāng)處理一個重載方法的聲明時,一個新的綁定會被映射到一個不同的實現(xiàn)。在處理類型檢查的過程中,編譯器會分析參數(shù)的實際類型,然后決定使用哪個方法。
動態(tài)重載(Dynamic overloading )允許運(yùn)行時根據(jù)實際參數(shù)的類型來選擇函數(shù)的不同實現(xiàn)。這是動態(tài)調(diào)度(dynamic dispatch)的一種形式。
動態(tài)調(diào)度也被用來實現(xiàn)方法覆蓋。被覆蓋的方法的調(diào)用由運(yùn)行期間實際對象的類型決定的。