回覆列表
  • 1 # 李蘭加洛斯道兒達爾文

    看什麼平臺,在電腦上開發會交叉編譯成class位元組碼,到不同平臺上表現還不通,像部署伺服器上,伺服器會在類載入的時候再一次編譯成原生代碼,然後執行,但是在安卓系統上,高版本的安卓會在程式安裝的時候進行本地編譯,執行的時候編譯少部分動態程式碼。所以總體而言java還是編譯型語言。解釋型語言是按照作用域解析執行的,像js,也並不是讀取一行執行一行,是當前作用域解析完執行,跟java本質差別是java會在完全編譯完後執行。當然還有反射和執行時直接位元組碼操作相關的就另說了

  • 2 # 此生唯一

    JAVA是一門尷尬而強悍的程式語言!

    為什麼尷尬?因為JAVA不算純粹的解釋型語言,也不能透過編譯就直接執行!

    我們一般編寫的JAVA原始碼是.java字尾的檔案,然後在裝有jvm虛擬機器的任何機器上透過javac.exe指令編譯變為.class字尾的檔案,在執行的時候再由java.exe指令解釋為機器可以執行的語言,所以JAVA並不是純粹的編譯型或者解釋型語言!

    JAVA的主要用途是什麼?

    ①,小應用:最初版本的遊戲手機,遊戲機,基本都會安裝一個jvm,用於使用在機器上的各種遊戲和應用,主要是用java se!

    ②,web伺服器開發:JAVA因為是執行的穩定性,安全性,高效性獲得了web開發工程師的青睞,spring,struts,mybatis,spring boot等企業級服務框架,極大的推動了JAVA的發展!

    ③,大型開源服務框架:例如hadoop,spark等大資料分散式計算框架!eclipse,最出名的開發IDE,支援外掛,可以用來編寫java,python等!lucene著名的快速的搜尋引擎!還有easyjweb,mybatis,等等超多流傳很廣的框架

    本來JAVA是一門嚴格的面向物件的程式語言,但是隨著java8的推行,也奠定了JAVA在面向程式設計和支援多語言開發的道路上越來越強!

    JAVA8的顛覆性特性有:lambda表示式語言,方法引用,stream流處理,函式式介面等,讓JAVA的使用變得更加的得心應手!

    JAVA不管是算作編譯型還是解釋性語言,都掩蓋不了JAVA的諸多優點,和不斷髮展的事實,那些說JAVA不行的言論,趁早歇了吧!

    我是謝逅,世界那麼大,我只用JAVA!

  • 3 # WEB開發李家靖

    首先在回答這個問題之前,我們得先知道什麼編譯型語言什麼是解釋型語言。

    編譯型語言就是直接把原始碼程式碼直接編譯成二進位制程式碼的可直接執行的程式,速度快,效率高的優點,但是依賴編譯器,跨平臺性較差,比如C、C++、Delphi、Pascal,Fortran這些語言。

    解釋型語言就是把寫好的原始碼翻譯一句,然後執行一句。特點是執行速度慢、效率低,依賴直譯器,但是跨平臺性好。如Java、Basic。

    簡單來說,編譯語言就是編譯後可以直接執行,而解釋語言的則需要有一個解釋環境。

    但是java很特殊,java程式也需要編譯,但是沒有直接編譯稱為二進位制機器語言,而是編譯成所有平臺都相同的class位元組碼檔案,然後再虛擬機器用解釋方式執行位元組碼。

    Java程式碼編譯

    Java位元組碼的執行

    所以JAVA也有一句話來哦描述它的特點:write once, run anywhere.意思就是:一次編譯,到處執行!

  • 4 # 越科良帝

    在回答這個問題之前,我們先要搞清楚基本概念,什麼是編譯型語言,什麼是解釋型語言。

    我們都知道,計算機是不能理解高階語言的,更不能直接執行高階語言,它只能直接理解機器語言,所以使用任何高階語言編寫的程式若想被計算機執行,都必須將其轉換成計算機語言,也就是機器碼。

    所謂編譯型語言就是把做好的源程式全部編譯成二進位制程式碼的可執行程式。然後,可直接執行這個程式。因為翻譯只做了一次,執行時不需要翻譯,所以編譯型語言的程式執行效率高。解釋型語言就是把做好的源程式翻譯一句,然後執行一句,直至結束!

    那麼兩者之間的區別是什麼呢?解釋性語言在執行程式的時候才翻譯,比如解釋性basic語言,專門有一個直譯器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

    對於Java來說,其實它是很特殊的,java很特殊,Java程式也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。有人說Java是編譯型的。因為所有的Java程式碼都是要編譯的,.java不經過編譯就無法執行。 也有人說Java是解釋型的。因為java程式碼編譯後不能直接執行,它是解釋執行在JVM上的,所以它是解釋型的。

  • 5 # V談計算機

    這個問題我很有興趣回答,本人曾經從事過Java開發,首先可以明確的是,Java是不絕對的編譯型語言。

    說到Java就不得不提到另外一個相愛相殺的語言,都在軟體開發領域佔據很重要的兩門語言,就是PHP,大家一定不陌生。PHP就是解釋型語言。因此很多人問到PHP和Java的區別在哪裡的時候,第一個想到的就是這一點,因為編譯型語言和解釋型語言在效率上存在很大的不同。一方面在軟體的執行效率,一方面在軟體的開發效率。

    什麼是編譯型語言?

    為了便於大家理解,說到這個還是需要和解釋型語言進行對比才好理解。Java和PHP甚至C在某種程度上來講,都不能被計算機直接執行,所以都存在編譯執行的過程,生成底層二進位制的機器指令,才能被機器直接執行。在生成的這個過程中略有不同,編譯型語言是把整個程式碼檔案一次性編譯成二進位制檔案,供機器一次性執行。解釋型語言是當代碼執行到某一句的時候,才把這一句進行翻譯。

    糾結到底是編譯型還是解釋性語言是很沒有必要的,站在不同的角度會有不同的看法,關鍵是能夠理解各自語言的執行原理。多多突破技術難點,編寫出更好的產品才是關鍵。

  • 中秋節和大豐收的關聯?
  • 長排骨怎麼努好吃?