眾所周知,C/C++是編譯型的語言,而python是屬於解釋型語言;然后Java是先經過編譯,生成字節碼,之后再在虛擬機上運行,那么Java到底屬於編譯型還是解釋性?
這里首先給出編譯型語言和解釋型語言的特點:
編譯型語言:執行速度快、效率高;依靠編譯器、跨平台性差些。
解釋型語言:執行速度慢、效率低;依靠解釋器、跨平台性好。
下面這張圖是Java代碼執行的過程:
可以看出經過解釋后生成的是.class文件,這是字節碼。這種文件還不是機器直接能識別的二進制代碼,之后還要在虛擬機上進行解釋,所以我們將Java歸在解釋型的編程語言這一類;
正是由於最后字節碼的執行需要虛擬機的解釋,所以才形成了Java的一大特點---Write Once,Run any Where,這也是跨平台的重要原因。
2021-05-18 16:40:40