簡體   English   中英

Java 中的“運行時”是什么意思?

[英]What does "runtime" mean in Java?

JVM 實現是將字節碼轉換為機器碼的解釋器。 但與此同時,JVM 實現會引發運行時錯誤。 這是否意味着解釋器檢查 Java 中的運行時錯誤? 或者這是否意味着Java的運行時發生在從字節碼到機器碼的階段?

這意味着在應用程序的運行期間(當應用程序實際運行時)拋出了一些異常,例如嘗試除以 0,這恰好是用戶輸入。

經過研究,我發現經典編譯器將源代碼轉換為機器碼,供計算機執行,而經典解釋器直接執行源代碼。

在 C 中,編譯器將其源代碼幾乎轉換為機器代碼(object 文件)。 當我們“運行”一個 C 程序時,這意味着機器執行 object 文件。 所以機器會拋出運行時錯誤。

而在 Java 中,編譯器將其源代碼轉換為字節碼,即源代碼和機器代碼之間的中間代碼。 編譯后,一個非經典的解釋器(字節碼解釋器)直接執行這個字節碼。 所以運行時錯誤是由這種解釋器拋出的,它在 Java 中稱為“虛擬機”,因為它的行為類似於 C 中執行程序的機器。

回到我問的問題,Java 中的解釋器 (JVM) 會引發運行時錯誤,因為它就像機器本身一樣,而不是在實際執行之前充當中間階段。

這是一個資源,它解釋了 Java 中的錯誤類型,包括運行時錯誤。 如果您願意,@Antoniossss 有一個簡短的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM