編譯解釋java
概念:
編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然後,可直接運行這個程序。
解釋型語言:把做好的源程序翻譯一句,然後執行一句,直至結束!
區別:
編譯型語言,執行速度快、效率高;依賴編譯器、跨平台性差些。如C、C++、Delphi、 Pascal,Fortran。
解釋型語言,執行速度慢、效率低;依賴解釋器、跨平台性好。如Java、Basic.
通俗的講,編譯語言是在編譯後可以直接運行,而解釋語言的執行需要一個解釋環境。
java很特殊,java程序也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。
JIT:
首先採用編譯形式生成某種中介代碼(Java bytecode/MSIL),然後在運行時將其(通常以函數或Block為單位)最終轉換成機器碼,然後執行,轉化的機器碼可以被cache,以提高重復執行的效率
JAVA的第一道工序是javac編譯,當然目標文件是BYTECODE。後續可能有三種處理方式:
1. 運行時,BYTECODE由JVM逐條解釋執行,
2. 運行時,部分代碼可能由JIT翻譯為目標機器指令(以method為翻譯單位,還會保存起來,第二次執行就不用翻譯了)直接執行;
3. RTSJ。繼JAVAC之後執行AOT二次編譯,生成靜態的目標平台代碼(典型的就是IBM WEBSHPERE REAL TIME)。
❷ Java語言中編譯執行和解釋執行的區別
編譯執行和解釋執行是不同語言之間的特性,所有的java都是編譯執行的。
如果不是編譯執行,其實已經完全不用java的編譯器。那麼只是一個使用java語法的另一種語言而已。
編譯執行是指把代碼先編譯成機器碼。然後按順序運行,如果編譯中有任何異常,都無法繼續運行。java的編譯就是把java轉換成class。
而解釋執行則是運行到哪一行代碼就執行哪一行代碼。如果其他代碼有錯誤但沒有運行到,一般不會影響。
比較起來,編譯執行速度要快的多。而解釋執行則在於比較靈活。可以動態修改。甚至可以在代碼運行到指定語句之前,修改該代碼。
❸ 什麼叫java編譯
就是把.Java文件編譯成.class文件
❹ java中編譯的意思,解釋的意思。
Java是編譯的,因為他把源代碼變成了位元組碼,而不是每次都解釋源代碼。
Java是解釋的。因為位元組碼是被JVM負責執行,而不是真正的二進制碼!
❺ JAVA是解釋型語言還是編譯型語言
有些答案對JAVA的理解還停留在上古時代或者教科書里。其實,現在用編譯型、解釋型來分類編程語言已經有點力不從心了。JAVA的第一道工序是javac編譯,當然目標文件是BYTECODE。後續可能有三種處理方式:1. 運行時,BYTECODE由JVM逐條解釋執行,2. 運行時,部分代碼可能由JIT翻譯為目標機器指令(以method為翻譯單位,還會保存起來,第二次執行就不用翻譯了)直接執行;3. RTSJ。繼JAVAC之後執行AOT二次編譯,生成靜態的目標平台代碼(典型的就是IBM WEBSHPERE REAL TIME)。有的時候,可能是以上三種方式同時在使用。至少,1和2是同時使用的,3需要程序員手工指定。所以討論語言得更細化一點了,強類型的、弱類型的,靜態的、動態的,GC-based的、手工管理內存的,有沒有VM...
❻ Java是編譯的還是解釋的
先由Java編譯器將Java源代碼(.java文件)編譯成位元組碼文件(.class文件),然後由Java解釋器解釋執行位元組碼文件。所以是先編譯,後解釋執行。
❼ JAVA語言是解釋型還是編譯型語言
1.編譯型語言在程序執行之前,有一個單獨的編譯過程,將程序翻譯成機器語言,以後執行這個程序的時候,就不用再進行翻譯了。
2.解釋型語言,是在運行的時候將程序翻譯成機器語言,所以運行速度相對於編譯型語言要慢。
3.C/C++ 等都是編譯型語言,而Java,C#等都是解釋型語言。
4.雖然Java程序在運行之前也有一個編譯過程,但是並不是將程序編譯成機器語言,而是將它編譯成位元組碼(可以理解為一個中間語言)。
❽ Java是解釋型還是編譯型
有人說Java是編譯型的。因為所有的Java代碼都是要編譯的,.java不經過編譯就無法執行。 也有人說Java是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋型的。對於C和C++,它們經過一次編譯之後,可以由操作系統直接執行,所以它們是編譯型語言。而Java不一樣,它首先由編譯器編譯成.class(位元組碼)文件,然後在通過JVM從.class文件中讀一行解釋執行一行,所以它是解釋型的語言。也正是由於java對於多種不同的操作系統有不同的JVM,所以實現了真正意義上的跨平台。(1)Java語言的編譯-->解釋-->運行過程 (2)JVM到這里,大家應該也都明白了。最後給出編譯型語言和解釋型語言的定義。 定義:編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然後,可直接運行這個程序。 解釋型語言:把做好的源程序翻譯一句,然後執行一句,直至結束!特點:編譯型語言,執行速度快、效率高;依靠編譯器、跨平台性差。 解釋型語言,執行速度慢、效率低;依靠解釋器、跨平台性好。 舉例:編譯型的語言包括:C、C++、Delphi、Pascal、Fortran 解釋型的語言包括:Java、Basic、javascript
❾ java是編譯型還是解釋型語言
Java是編譯型的,Java文件需要編譯才能運行,不可以直接運行