2014-03-03 76 views
0

我想了解Java程序是解釋還是編譯,爲什麼?Java - 解釋還是編譯?

我(我想)知道編譯和intrepertations的定義:

編譯 - 將源代碼轉換爲機器代碼。然後可以執行機器碼。

解釋 - 翻譯代碼並同時運行它。翻譯一行源代碼,運行它,翻譯下一行,運行它,等等。

這些定義是正確的?如果是這樣,是Java程序解釋還是編譯,爲什麼?

+3

這些是編譯和解釋的兩種可能的定義。它們都不適用於Java或幾乎任何其他現代PL實現。 –

+0

請嘗試使用以下確切標題進行搜索:https://www.google.com/search?q=Java+-+Interpreted+or+compiled%3F – aliteralmind

回答

2

Java既不兼容也不兼容。

Java的源代碼是編譯成字節碼,然後將其由Java虛擬機解釋

+0

雖然也可能需要從字節碼到機器代碼進行JIT(如果需要)(而不是解釋字節碼) –

+0

@Philipp感謝您的回答。我明白*'源代碼被編譯爲字節碼'*部分。但是我很難理解*'字節碼是由Java虛擬機'部分解釋的。解釋的定義(糾正我,如果我錯了)大致是:將一行代碼(在這種情況下,字節碼)轉換爲更低級的語言,然後運行此行(依此類推)。如果這是真的,那麼**解釋將字節碼轉換爲什麼更低級的語言?**它是純粹的機器級二進制代碼嗎? –

+0

@Prog是的。 Java字節碼是一種獨立於機器的彙編程序代碼。 JVM然後將其轉換爲它在其上執行的CPU的指令。 (嚴重過分簡化) – Philipp