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屬於什麼語言
JAVA語言,就是屬於混合型語言,這是屬於解釋型語言和編譯型語言之間的一種語言。學習一門高級程序語言,很多人都推薦JAVA。JAVA能讓你學習到一門高級程序語言的方方面面,但又不會造成學習曲線過於陡峭x0dx0ax0dx0aJava語言是一個支持網路計算的面向對象程序設計語言。Java語言吸收了Smalltalk語言和C++語孫肢言的優點,並增加了其它特性,如支持並發程序設計、網路通信、和多媒體數據控制等。主要特性如下:x0dx0a1) Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。x0dx0a2) Java語言是一個面向對象的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++ 語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。x0dx0a3) Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java.net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。x0dx0a4) Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。x0dx0a5) Java語言是安全的。Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡者凱源意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。 x0dx0a6) Java語言是體系結構中立的。Java程序(後綴為java的文件)在Java平台上被編譯為體系結構中立的位元組碼格式(後綴為class的文件)首態, 然後可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網路環境和軟體的分發。 x0dx0a7) Java語言是可移植的。這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。x0dx0a8) Java語言是解釋型的。如前所述,Java程序在Java平台上被編譯為位元組碼格式, 然後可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java解釋器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。x0dx0a9) Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。 x0dx0a10) Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable) 的構造子將一個實現了Runnable介面的對象包裝成一個線程,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。 Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字為synchronized)。x0dx0a11) Java語言是動態的。Java語言的設計目標之一是適應於動態變化的環境。Java程序需要的類能動態地被載入到運行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。x0dx0aJava語言的優良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統的維護費用。Java對對象技術的全面支持和Java平台內嵌的API能縮短應用系統的開發時間並降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平台之間傳遞信息的低成本方式。特別是Java企業應用編程介面(Java Enterprise APIs)為企業計算及電子商務應用系統提供了有關技術和豐富的類庫。x0dx0a1) JDBC(Java Database Connectivity)提供連接各種關系資料庫的統一介面。x0dx0a2) EJB(Enterprise JavaBeans)使得開發者方便地創建、部署和管理跨平台的基於組件的企業應用。x0dx0a3) Java RMI(Java Remote Method Invocation)用來開發分布式Java應用程序。一個Java對象的方法能被遠程Java虛擬機調用。這樣,遠程方法激活可以發生在對等的兩端,也可以發生在客戶端和伺服器之間,只要雙方的應用程序都是用Java寫的。x0dx0a4) Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無逢的互操作性。這使得Java能集成異構的商務信息資源。x0dx0a5) JNDI(Java Naming and Directory Interface)提供從Java平台到的統一的無逢的連接。這個介面屏蔽了企業網路所使用的各種命名和目錄服務。x0dx0a6) JMAPI(Java Management API)為異構網路上系統、網路和服務管理的開發提供一整套豐富的對象和方法。x0dx0a7) JMS(Java Message Service)提供企業消息服務,如可靠的消息隊列、發布和訂閱通信、以及有關推拉(Push/Pull)技術的各個方面。x0dx0a8) JTS(Java transaction Service)提供存取事務處理資源的開放標准,這些事務處理資源包括事務處理應用程序、事務處理管理及監控。x0dx0a在Java技術中,值得關注的還有JavaBeans,它是一個開放的標準的組件體系結構,它獨立於平台,但使用Java語言。一個JavaBean是一個滿足JavaBeans規范的Java類,通常定義了一個現實世界的事物或概念。一個JavaBean的主要特徵包括屬性、方法和事件。通常,在一個支持JavaBeans規范的開發環境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可視地操作JavaBean,也可以使用JavaBean構造出新的JavaBean。JavaBean的優勢還在於Java帶來的可移植性。現在,EJB (Enterprise JavaBeans) 將JavaBean概念擴展到Java服務端組件體系結構,這個模型支持多層的分布式對象應用。除了JavaBeans,典型的組件體系結構還有DCOM和CORBA,關於這些組件體系結構的深入討論超出了本書的范圍。
⑶ java語言是解釋型語言還是編譯型的
java是編譯型語言,代碼編程之後,需要編譯成機器可以運行得文件,才能運行。
解釋型語言是代碼寫好之後不用編譯,直接可以運行得。例如html,這種。所見即所運行得。
⑷ 為什麼說Java是一種解釋性語言
java是編譯型的語言,不是解釋型的。
與編譯型程序不同,每次運行解釋型程序時都要由解釋器程序實時地將源代碼轉換成二進制形式,而編譯型程序由編譯器一次性將源代碼轉換成可執行代碼,隨後從其二進制形式運行。解釋型語言(以及用它們編寫的程序)往往要比編譯型語言及偽代碼語言/程序慢,並且通常只有有限的底層操作系統功能訪問許可權或直接訪問硬體的許可權。但從另一角度來說,它們無需編譯器(可能非常昂貴),並且經常包含在操作系統中,通常比編譯型語言更容易編程。
⑸ java是什麼類型語言
java語言屬於混合型語言,是解釋型語言和編譯型語言之間的一種語言,是一個支持網路計算的面向對象程序設計語言,吸收了Smalltalk語言和C++語言的優點,並增加了其獨有特性,如支持並發程序設計、網路通信、和多媒體數據控制等。
Java有簡單性、面向對象、分布性、編譯和解釋性、穩健性、安全性、可移植性、高性能等特點,可以編寫應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
計算機語言很多,不同的語言所側重的領域不相同,Java因語法簡單、上手比較快,在Android應用、金融業、網站、大數據技術、高頻交易的空間等方面都有應用。
總結:
java語言屬於混合型語言,是解釋型語言和編譯型語言之間的一種語言,是一個支持網路計算的面向對象程序設計語言,吸收了Smalltalk語言和C++語言的優點,並增加了其獨有特性,如支持並發程序設計、網路通信、和多媒體數據控制等。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:0731-84117792E-MAIL:[email protected]
⑹ java是解釋型語言嗎
1.class文件中不是機器語言,是經過編碼的8位位元組二進制流(注意雖然表示方法都似乎一樣的,但是語義是不一樣的,class文件有自己的編碼格式),數據項按順序存儲在class文件中,向另的項之間沒有任何間隔,使得class文件緊湊。其占據多個位元組空間的項按高位在前的順序分為幾個連續的位元組存放。其實java語言與御簡class文件具有非排他性,兩者之間沒有必然的聯系(當然,普遍認為有聯系)。
2.不同的平台下虛擬機的細節實現不一樣,這就使得它解釋執行的class文件能夠適應不同的平台。
3.使用虛擬機會減少代碼的執行效率,要增強generalization(對不同平台的支持)就必須減少specilization(對某一平台的優化),魚與熊掌不可兼得的。
-----------------------PS分割線---------------------------
PS:如果你對java的原理更感興趣的話,關於更多的講解可以棗拆察看看Bill Venners的《深入Java虛擬機》,很有用處,雖然只是講到java 1.2,但是基本原理凳茄都差不多的。
PS PS:class文件的開頭部分都是一個稱作魔數的段,其內容為0xCAFEBABE。
⑺ Java是一種什麼語言
Java是一種計算機編程語言,擁有跨平台、面向對象、泛型編程的特性,廣泛應用於企業級Web應用開發和移動應用開發。
Java編程語言的風格十分接近c++語言。繼承了C++語言面向對象技術的核心,Java舍棄了C++語言中容易引起錯誤的指針,改以引用取代,同時移除原C++與原來運算符重載,也移除多重繼承特性,改用介面取代,增孫侍加垃圾回收器功能。在Java SE1.5版本中引入了泛型編程、類型安全的枚舉、不定長參數和自動裝/拆箱特性。太陽微系統對Java語言的解釋是:「Java編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言」
Java不同於一般的編譯語言和直譯語言。它首先將源代碼編譯成位元組碼,然後雹困依賴各種不同平台上的虛擬機來解釋執行位元組碼,從而實現源凱念了「一次編寫,到處運行」的跨平台特性。在早期JVM中,這在一定程度上降低了Java程序的運行效率。但在J2SE1.4.2發布後,Java的運行速度有了大幅提升。
(1)Java語言的編譯-->解釋-->運行過程
⑻ Java是解釋型還是編譯型
它既不屬於傳統的編譯型語言也不屬於解釋型語言。它是先編譯成.CLASS位元組碼文件,然後再利用虛擬機解釋執行的.可以說先編譯後解釋吧。
⑼ Java 是編譯型語言還是解釋型語言
高級計算機語言主要有兩種類型:編譯和解釋。
這是一個跨平台的java,並可在任何地方運行:跨平台的java是基於JVM。Java虛擬機是由軟體或硬體模擬的計算機程序,java,計算機所有的.class文件是運行在JVM,即JVM *。只有Java類文件,以適應不同的操作系統,讓操作系統的安裝按照不同只要JVM的類型,然後程序無論哪個操作系統的JVM可以糾正窗口/其他...... JVM的Unix / JVM的實現因此,如果沒有JVM,就不能跨平台。
⑽ Java,Python分別是解釋型還是編譯型語言
Java,Python都是解釋型的,但是java會做一個語法檢查的預編譯,執行的時候才解釋成機器語言。
C、C++才是編譯型的
解釋型的通用性好,可以跨平台
編譯型的效率高。