java解釋器和編譯器
① 編譯器和解釋器的主要區別是什麼他們相對於對方各自的優點
解釋器是解釋執行的源代碼,編譯器是將源代碼編譯成目標代碼
他們最大的區別是程序運行時需要解釋器邊解釋邊執行,而編譯器則在運行時是完全不需要的
解釋器的優點是比較容易讓用戶實現自己跨平台的代碼,比如java,php等,同一套代碼可以在幾乎所有的操作系統上執行,而無需根據操作系統做修改;
編譯器的目的就是生成目標代碼再由連接器生成可執行的機器碼,這樣的話需要根據不同的操作系統編制代碼,雖然有像Qt這樣的源代碼級跨平台的編程工具庫,但在不同的平台上仍然需要重新編譯連接成可執行文件,但其執行效率要遠遠高於解釋運行的程序。
編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;
而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的.
這是因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進制的形式)
② java的虛擬機 編譯器 解釋器 都什麼關系啊
Java虛擬機(JVM)一種用於計算機設備的規范,可用不同的方式(軟體或硬體)加以實現。編譯虛擬機的指令集與編譯微處理器的指令集非常類似。Java虛擬機包括一套位元組碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。
Java虛擬機(JVM)是可運行Java代碼的假想計算機。只要根據JVM規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統上運行。
Java虛擬機是一個想像中的機器,在實際的計算機上通過軟體模擬來實現。Java虛擬機有自己想像中的硬體,如處理器、堆棧、寄存器等,還具有相應的指令系統。
參考:http://ke..com/view/374952.htm
Javac編譯器
Javac編譯器讀取Java源代碼,並將其編譯成位元組代碼,調用Javac的命令行示例如下:
C:>javac options filename.java
值得注重的是,和Java解釋器不同,Javac 編譯器期望它正在編譯的文件具有擴展名.java。其命令行如下表 選項 功能
-classpath path 此選項用於設定路徑,在該路徑上Javac尋找需被調用的類。該路徑是一個用分號分開的目錄列表。
-d Directory 此選項指定一個根目錄。該目錄用來創建反映軟體包繼續關系的目錄數。
-g 此選項在代碼產生器中打開調試表,以後可憑此調試產生位元組代碼。
-nowarn 此選項禁止編譯器產生警告。
-o 此選項告訴javac優化由內聯的static、final以及privite成員函數所產生的碼。
-verbose 此選項告知Java顯示出有關被編譯的源文件和任何被調用類庫的信息。
參考:http://ke..com/view/2972115.htm
③ Java是編譯的還是解釋的
先由Java編譯器將Java源代碼(.java文件)編譯成位元組碼文件(.class文件),然後由Java解釋器解釋執行位元組碼文件。所以是先編譯,後解釋執行。
④ Java編譯器、解釋器分別是什麼命令,舉例說明如何使用。
javac 編譯器 用於將java源代碼文件編譯成位元組碼.
語法: javac [option] source
java 解釋器 用於執行java位元組碼
語法: java [option] classname
使用實例如下:
⑤ java用編譯器還是解釋器
編譯器和解釋器都需要使用,編譯器將源文件編譯成class文件,當class文件 運行的時候是在通過解釋器運行。
⑥ 即時編譯器和JAVA解釋器的區別
即時編譯器預先把程序編譯完成,當執行時就直接調用。
而JAVA解釋器則是當需要調用該代碼時才臨時編譯解釋,而且沒執行一次就要編譯一次,而即時編譯器則是一次編譯多次執行。
⑦ jdk中的編譯器是什麼,解釋器是什麼
編譯器是指java程序運行時對java代碼進行語法檢查和代碼規范的一種機制,若不符合代碼規范和語法有錯誤編譯器將會報錯,代碼將無法運行。解釋器我很少聽說,是不是編譯器報錯的時候出現的錯誤提示?