新聞中心
Java語言中編譯執(zhí)行和解釋執(zhí)行的區(qū)別?
編譯執(zhí)行和解釋執(zhí)行是不同語言之間的特性,所有的java都是編譯執(zhí)行的。 如果不是編譯執(zhí)行,其實已經(jīng)完全不用java的編譯器。那么只是一個使用java語法的另一種語言而已。

編譯執(zhí)行是指把代碼先編譯成機器碼。然后按順序運行,如果編譯中有任何異常,都無法繼續(xù)運行。
java的編譯就是把java轉(zhuǎn)換成class。而解釋執(zhí)行則是運行到哪一行代碼就執(zhí)行哪一行代碼。如果其他代碼有錯誤但沒有運行到,一般不會影響。
比較起來,編譯執(zhí)行速度要快的多。而解釋執(zhí)行則在于比較靈活??梢詣討B(tài)修改。甚至可以在代碼運行到指定語句之前,修改該代碼。
什么異??梢栽诰幾g階段不處理?
運行時異??梢栽诰幾g階段不處理
異??梢苑譃椋壕幾g時異常(Exception)和運行時異常(RunTimeException)
運行時異常:所有的RuntimeException及子類都屬于運行時異常,運行時異常在編寫程序階段,可以不處理。
編譯時異常:所有的Exception的直接子類,必須在編寫程序的時候預(yù)先對這種異常進(jìn)行處理,如不處理,編譯器報錯。
編譯時異常大概率會發(fā)生(大部分是語法、邏輯、超出類型范圍值等錯誤),運行時異常發(fā)生概率相對較小。
Error與Exception有什么區(qū)別?
Error和Exception的聯(lián)系
繼承結(jié)構(gòu):Error和Exception都是繼承于Throwable,RuntimeException繼承自Exception。
Error和RuntimeException及其子類稱為未檢查異常(Unchecked exception),其它異常成為受檢查異常(Checked Exception)。
Error和Exception的區(qū)別
Error類一般是指與虛擬機相關(guān)的問題,如系統(tǒng)崩潰,虛擬機錯誤,內(nèi)存空間不足,方法調(diào)用棧溢出等。如java.lang.StackOverFlowError和Java.lang.OutOfMemoryError。對于這類錯誤,Java編譯器不去檢查他們。對于這類錯誤的導(dǎo)致的應(yīng)用程序中斷,僅靠程序本身無法恢復(fù)和預(yù)防,遇到這樣的錯誤,建議讓程序終止。
Exception類表示程序可以處理的異常,可以捕獲且可能恢復(fù)。遇到這類異常,應(yīng)該盡可能處理異常,使程序恢復(fù)運行,而不應(yīng)該隨意終止異常。
運行時異常和受檢查的異常
Exception又分為運行時異常(Runtime Exception)和受檢查的異常(Checked Exception )。
RuntimeException:其特點是Java編譯器不去檢查它,也就是說,當(dāng)程序中可能出現(xiàn)這類異常時,即使沒有用try……catch捕獲,也沒有用throws拋出,還是會編譯通過,如除數(shù)為零的ArithmeticException、錯誤的類型轉(zhuǎn)換、數(shù)組越界訪問和試圖訪問空指針等。處理RuntimeException的原則是:如果出現(xiàn)RuntimeException,那么一定是程序員的錯誤。
受檢查的異常(IOException等):這類異常如果沒有try……catch也沒有throws拋出,編譯是通不過的。這類異常一般是外部錯誤,例如文件找不到、試圖從文件尾后讀取數(shù)據(jù)等,這并不是程序本身的錯誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯誤。
到此,以上就是小編對于java編譯時異常和運行時異常有什么區(qū)別嗎的問題就介紹到這了,希望這3點解答對大家有用。
網(wǎng)站題目:java編譯時異常和運行時異常有什么區(qū)別
URL分享:http://m.5511xx.com/article/copcsic.html


咨詢
建站咨詢
