Ⅰ 編譯型和解釋型的區別&java從編譯到執行的過程
Java這個語言很非凡。
二、你可以說它是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋運行的,那也就算是解釋的了。
三、但是,現在的JVM為了效率,都有一些JIT優化。它又會把.class的二進制代碼編譯為本地的代碼直接運行,所以,又是編譯的。
像C、C++ 他們經過一次編譯之後直接可以編譯成操作系統了解的類型,可以直接執行的 所以他們是編譯型的語言。沒有經過第二次的處理 而Java不一樣他首先由編譯器編譯成.class類型的文件,這個是java自己類型的文件 然後在通過虛擬機(JVM)從.class文件中讀一行解釋執行一行,所以他是解釋型的語言,而由於java對於多種不同的操作系統有不同的JVM所以
Java實現了真正意義上的跨平台!
請觀看下面兩張圖 了解一下Java的虛擬機機制:
(1)java語言的編譯--解釋---執行過程
(2)java的虛擬機
定義:編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然後,可直接運行這個程序。
解釋型語言:把做好的源程序翻譯一句,然後執行一句,直至結束!區別:編譯型語言,執行速度快、效率高;依靠編譯器、跨平台性差些。
解釋型語言,執行速度慢、效率低;依靠解釋器、跨平台性好。
個人認為,java是解釋型的語言,因為雖然java也需要編譯,編譯成.class文件,但是並不是機器可以識別的語言,而是位元組碼,最終還是需要 jvm的解釋,才能在各個平台執行,這同時也是java跨平台的原因。所以可是說java即是編譯型的,也是解釋型,但是假如非要歸類的話,從概念上的定義,恐怕java應該歸到解釋型的語言中。
Ⅱ java文件為什麼需要編譯為class
java為了跨平台,所以需要一個中間平台java虛擬機且程序也要是中宏改間平台運行蔽配判程序,在任何系統只需要裝上java虛擬機就能運行程序。而程序編譯成class位元組碼,這樣任何機器上的java虛擬機都能運行相同的位元組碼,所以。。要賣扒編譯成位元組碼
Ⅲ 運行java程序時,為什麼要先編譯再運行,編譯運行一起進行不行嗎
java講究的是 一次編譯 處處運行,也就是提高了程序的一致性。java的程序之所在不同的操作系統上的運行結果是一樣的,是因為java虛擬機。
所以要運行java都要裝一個叫jdk的東西,裡面有java的虛擬機。這個虛擬機就是來解釋我們寫的代碼。通過這個虛擬機,就實現了代碼的移植。
我們寫好的程序,通過虛擬機,編譯成class文件,然後在運行。但是我們只需要編譯一次即可。
Ⅳ java中編譯的意思,解釋的意思。
Java是編譯的,因為他把源代碼變成了位元組碼,而不是每次都解釋源代碼。
Java是解釋的。因為位元組碼是被JVM負責執行,而不是真正的二進制碼!
Ⅳ java源代碼為什麼要編譯
你現在電腦里的文件是文檔文件確切的說在計算機里也是0和1的序列 但是他和執行程序不是一
個類型的文件 文件是由類型的比如說mp3 是播放聲音的 MP4是播放視屏的 TXT是文檔文件
就是存儲文檔的 在回到問題
.java文件其實就和TXT文件一樣是文檔文件是用來存儲你寫的代碼的
他是拿來給你人看的
你要想讓他變成其可執行程序的文件你就得通過編譯器編譯它
編譯器是按照你寫的代碼把他們翻譯成可執行文件的編碼方式
然後你就可以運行它了
在計算機看來所有的文件都是0和1的組合 應為文件的類型的不同它會用不同的方式解讀它們
具體的java程序。編譯。運行等等環節怎麼完成怎麼解釋 你得慢慢了解 或者有時間我在給你解釋解釋
寫的比較亂 你湊合著看吧
Ⅵ 什麼叫java編譯
就是把.Java文件編譯成.class文件
Ⅶ java源代碼為什麼要編譯
程序設計高級語言的原理都是相似的。JAVA,C,C++,等都類似。
說一下JAVA的:
我們先把自然語言,也就是我們平時的話寫成程序設計高級語言,這是編程。
然後再通過編譯器生成class也就是位元組碼文件,這個過程是編譯。此時的class文件我們也可以稱之為二進制碼,就是計算機可識別的0,1文件了。而編譯是計算機內部運行,不需要編程者操作。
.java是以源文件形式存在,是編譯器和我們都可識別的語言。
編譯器識別了.java文件後生成.class文件,是編譯器和計算機可識別的語言。
然後計算機會使同名的.java和.class文件關聯,計算機自己有兩次翻譯過程,而這個過程操作者並不需要操心。之後我們就可以運行.java文件了。
Ⅷ java語言在被設計的時候為什麼會加上 編譯 這一步
java語言在被設計的時候為什麼會加上編譯這一步,其實主要的考慮因素是性能,靜態語言的執行效率比動態語言要高得多。所以需要編譯。