導航:首頁 > 編程語言 > java解釋型語言

java解釋型語言

發布時間:2025-02-20 17:07:50

java和C的區別

Java和C都是指令式語言(Imperative Language),不同的是Java有面向對象(OO)成分在裡面,而C是完全面向過程的,C的高級版本C++、C#支持面向對象。

另外一個不同是,Java跨平台,既不同的操作系統都可以通過JVM來解釋Java程序,而C、C++、C#則是與平台相關的,有些指令只在某些操作系統中才能執行。具體原因是,Java是解釋型語言,所有代碼都會翻譯成統一的、與系統無關的bytecode,然後放到JVM上運行;而C是編譯式語言,代碼要先通過編譯器轉換成與系統相關的中間代碼,然後才能運行。

再一個不同是,Java不支持系統調用,既無法與操作系統進行交互,這是由它跨平台的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什麼Java中只有線程(Thread)概念而沒有進程(Process)概念,而C兩者均有。

再者,Java無法對內存進行控制,而C則可以通過指針對內存進行人為分配。
還有一點,Java有Gabbage Collection機制,可以自動回收不再使用的空間,而C則要用free()函數釋放空間。

總的來說,Java比較容易上手,學得快,但對於了解編程語言來說幫助不如C大。
當然Java和C之間的區別還有很多很多。

Ⅱ JAVA語言是解釋型還是編譯型語言

java的編譯器先將其編譯為class文件,也就是位元組碼;然後將位元組碼交由jvm(java虛擬機)解釋執行;
所以很回多地方都說「答java是一種半編譯、半解釋執行」的語言;
近來(其實也不是很"近")Oracle的(以前是Sun的)HotSpot VM採用了jit compile(just in time compilation)技術,將運行頻率很高的位元組碼直接編譯為機器指令執行以提高性能, 所以當位元組碼被jit編譯為機器碼的時候,要說它是編譯執行的也可以...
不過總體來講,java的編譯結果是被jvm「解釋執行」的,所以這么說也能說通,而其實這個「是編譯還是解釋」這個概念在這里已經有點模糊了,理解它的過程就行了,不必下一個「精確」的定義;
而我自己仍然贊成「java是編譯型語言」的說法,因為「編譯」其本質就是「把一個相對高級的語言轉換為另一個相對低級的語言」,而由java -> class文件的編譯已經滿足了這個特徵; 而後面你要說jvm是「解釋執行」的,那其實硬體對於機器碼又何嘗不是「解釋執行」呢?

閱讀全文

與java解釋型語言相關的資料

熱點內容
代碼修改form名稱 瀏覽:507
華為g9是安卓系統嗎 瀏覽:688
貝葉斯網路構建方法 瀏覽:197
模仿網站素材哪裡來 瀏覽:488
小程序選擇器時間 瀏覽:47
win10任務管理器頻率 瀏覽:583
禹城市網路傳媒怎麼樣 瀏覽:629
招商applepay免密 瀏覽:828
超市收銀數據怎麼核對 瀏覽:716
win10電腦壁紙問題 瀏覽:778
右鍵單擊桌面文件無反應 瀏覽:941
ftp文件名帶時間 瀏覽:547
java面試題抽象類和介面有什麼區別 瀏覽:984
mac電腦壓縮文件到windows 瀏覽:258
如何刪除qq最近聯系人 瀏覽:228
iphone6關閉單手 瀏覽:831
3扣1用什麼app 瀏覽:387
簡單內核程序 瀏覽:675
怎麼建立桌面文件袋 瀏覽:257
花椒新版本下載 瀏覽:123

友情鏈接