導航:首頁 > 編程語言 > 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解釋型語言相關的資料

熱點內容
視頻播客程序 瀏覽:25
有什麼做文件壓縮包免費的軟體 瀏覽:658
問卷星下拉題目為什麼數據是序號 瀏覽:161
蘇寧銷售數據多少 瀏覽:412
MACpro顯示器顏色的描述文件 瀏覽:598
如何算一組數據平均值 瀏覽:741
手機臨時緩存文件有哪些 瀏覽:186
如何關閉數據漫遊 瀏覽:120
怎麼改appstore語言 瀏覽:776
linux更換桌面 瀏覽:601
如何通過文檔查找文件名 瀏覽:846
最流暢的安卓手機品牌 瀏覽:774
vb登錄界面注冊代碼 瀏覽:50
手機切換軟體重新運行程序 瀏覽:332
神廟逃亡代碼 瀏覽:932
文件壓縮到最小到多少 瀏覽:336
sb0060win10驅動 瀏覽:876
寬頻撥號上網賬號密碼忘了 瀏覽:531
除夕哪個app燒錢最多 瀏覽:179
有什麼app是中國用不了的 瀏覽:134

友情鏈接