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

java是編譯解釋型語言

發布時間:2024-12-09 11:15:04

java是解釋型還是編譯

它既不屬於傳統的編譯型語言也不屬於解釋型語言。它是先編譯成.CLASS位元組碼文件,然後再利用虛擬機解釋執行的.可以說先編譯後解釋吧。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程[1] 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點[2] 。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等[3] 。
20世紀90年代,硬體領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品(如電視機頂盒、麵包烤箱、行動電話等)的智能化程度。Sun公司為了搶占市場先機,在1991年成立了一個稱為Green的項目小組,帕特里克、詹姆斯·高斯林、麥克·舍林丹和其他幾個工程師一起組成的工作小組在加利福尼亞州門洛帕克市沙丘路的一個小工作室裡面研究開發新技術,專攻計算機在家電產品上的嵌入式應用。
由於C++所具有的優勢,該項目組的研究人員首先考慮採用C++來編寫程序。但對於硬體資源極其匱乏的單片式系統來說,C++程序過於復雜和龐大。另外由於消費電子產品所採用的嵌入式處理器晶元的種類繁雜,如何讓編寫的程序跨平台運行也是個難題。為了解決困難,他們首先著眼於語言的開發,假設了一種結構簡單、符合嵌入式應用需要的硬體平台體系結構並為其制定了相應的規范,其中就定義了這種硬體平台的二進制機器碼指令系統(即後來成為「位元組碼」的指令系統),以待語言開發成功後,能有半導體晶元生產商開發和生產這種硬體平台。對於新語言的設計,Sun公司研發人員並沒有開發一種全新的語言,而是根據嵌入式軟體的要求,對C++進行了改造,去除了留在C++的一些不太實用及影響安全的成分,並結合嵌入式系統的實時性要求,開發了一種稱為Oak的面向對象語言。

⑵ 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的編譯器先將其編譯為class文件,也就是位元組碼;然後將位元組碼交由jvm(java虛擬機)解釋執行, 所以很多地方都說「java是一種半編譯、半解釋執行」的語言

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

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

⑸ java語言是解釋型語言還是編譯型的

java是編譯型的,寫好的java源代碼需要編譯成位元組碼,然後jre載入位元組碼文件執行

⑹ Java到底是編譯型語言還是解釋型語言

Java 是一種編譯解釋混合型語言,先編譯後解釋執行,具體是先將 java 源文件 編譯 成位元組碼文件也就是 .class 文件,然後再由 java 虛擬機解釋運行 位元組碼文件。

⑺ java是編譯性語言還是解釋性語言

一、你可以說它是編譯型的。因為所有的Java代碼都是要編譯的,.java不經過編譯就什麼用都沒有。
二、你可以說它是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋運行的,那也就算是解釋了。
定義:
編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然後,可直接運行這個程序。
解釋型語言:把做好的源程序翻譯一句,然後執行一句,直至結束!
區別:
編譯型語言,執行速度快、效率高;依靠編譯器、跨平台性差些。
解釋型語言,執行速度慢、效率低;依靠解釋器、跨平台性好。
個人認為,java是解釋型的語言,因為雖然java也需要編譯,編譯成.class文件,但是並不是機器可以識別的語言,而是位元組碼,最終還是需要 jvm的解釋,才能在各個平台執行,這同時也是java跨平台的原因。所以可是說java即是編譯型的,也是解釋型,但是假如非要歸類的話,從概念上的定義,恐怕java應該歸到解釋型的語言中。

⑻ 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是編譯解釋型語言相關的資料

熱點內容
精品php源碼 瀏覽:960
自己編寫雲伺服器搶紅包 瀏覽:203
java解壓縮文件加密 瀏覽:887
dlink列印伺服器默認地址 瀏覽:353
php休眠函數 瀏覽:372
金蝶如何打開伺服器 瀏覽:766
e4a手游輔助源碼 瀏覽:777
什麼app可以實時直播 瀏覽:106
蘋果13的app閃退什麼原因 瀏覽:775
尾盤選股源碼公式 瀏覽:450
php日期運算 瀏覽:931
天龍八部長歌伺服器什麼時候開的 瀏覽:199
鬼泣4模型在那個文件夾 瀏覽:229
單片機的串列口 瀏覽:58
phpjson轉化為數組 瀏覽:268
pdf導入excel 瀏覽:428
蘋果xsmax信任app在哪裡設置 瀏覽:53
自動外鏈php源碼 瀏覽:245
我的世界新手獎勵箱命令 瀏覽:146
linux更新vim 瀏覽:998