我想了解Java程序是解釋還是編譯,爲什麼?Java - 解釋還是編譯?
我(我想)知道編譯和intrepertations的定義:
編譯 - 將源代碼轉換爲機器代碼。然後可以執行機器碼。
解釋 - 翻譯代碼並同時運行它。翻譯一行源代碼,運行它,翻譯下一行,運行它,等等。
這些定義是正確的?如果是這樣,是Java程序解釋還是編譯,爲什麼?
我想了解Java程序是解釋還是編譯,爲什麼?Java - 解釋還是編譯?
我(我想)知道編譯和intrepertations的定義:
編譯 - 將源代碼轉換爲機器代碼。然後可以執行機器碼。
解釋 - 翻譯代碼並同時運行它。翻譯一行源代碼,運行它,翻譯下一行,運行它,等等。
這些定義是正確的?如果是這樣,是Java程序解釋還是編譯,爲什麼?
Java既不兼容也不兼容。
Java的源代碼是編譯成字節碼,然後將其由Java虛擬機解釋。
雖然也可能需要從字節碼到機器代碼進行JIT(如果需要)(而不是解釋字節碼) –
@Philipp感謝您的回答。我明白*'源代碼被編譯爲字節碼'*部分。但是我很難理解*'字節碼是由Java虛擬機'部分解釋的。解釋的定義(糾正我,如果我錯了)大致是:將一行代碼(在這種情況下,字節碼)轉換爲更低級的語言,然後運行此行(依此類推)。如果這是真的,那麼**解釋將字節碼轉換爲什麼更低級的語言?**它是純粹的機器級二進制代碼嗎? –
@Prog是的。 Java字節碼是一種獨立於機器的彙編程序代碼。 JVM然後將其轉換爲它在其上執行的CPU的指令。 (嚴重過分簡化) – Philipp
這些是編譯和解釋的兩種可能的定義。它們都不適用於Java或幾乎任何其他現代PL實現。 –
請嘗試使用以下確切標題進行搜索:https://www.google.com/search?q=Java+-+Interpreted+or+compiled%3F – aliteralmind