導航:首頁 > 源碼編譯 > java是編譯性語言

java是編譯性語言

發布時間:2023-04-15 02:33:55

A. java語言是解釋型語言還是編譯型的

於常見的解釋執行語言不同,它既是編譯型也是解釋型:編譯就是把源文件編譯成.class文件,解釋就是虛擬機通過解釋.class文件完成對.class文件的執行。

B. java是編譯型語言還是解釋型語言

概念:

編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然後,可直接運行這個程序。

解釋型語言:把做好的源程序翻譯一句,然後執行一句,直至結束!

區別:

編譯型語言,執行速度快、效率高;依賴編譯器、跨平台性差些。如C、C++、Delphi、 Pascal,Fortran。

解釋型語言,執行速度慢、效率低;依賴解釋器、跨平台性好。如Java、Basic.

通俗的講,編譯語言是在編譯後可以直接運行,而解釋語言的執行需要一個解釋環境。

java很特殊,java程序也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。

JIT:

首先採用編譯形式生成某種中介代碼(Java bytecode/MSIL),然後在運行時將其(通常以函數或Block為單位)最終轉換成機器碼,然後執行,轉化的機器碼可以被cache,以提高重復執行的效率

JAVA的第一道工序是javac編譯,當然目標文件是BYTECODE。後續可能有三種處理方式:
1. 運行時,BYTECODE由JVM逐條解釋執行,
2. 運行時,部分代碼可能由JIT翻譯為目標機器指令(以method為翻譯單位,還會保存起來,第二次執行就不用翻譯了)直接執行;
3. RTSJ。繼JAVAC之後執行AOT二次編譯,生成靜態的目標平台代碼(典型的就是IBM WEBSHPERE REAL TIME)。

C. 為什麼說Java是一種解釋性語言

java是編譯型的語言,不是解釋型的。
與編譯型程序不同,每次運行解釋型程序時都要由解釋器程序實時地將源代碼轉換成二進制形式,而編譯型程序由編譯器一次性將源代碼轉換成可執行代碼,隨後從其二進制形式運行。解釋型語言(以及用它們編寫的程序)往往要比編譯型語言及偽代碼語言/程序慢,並且通常只有有限的底層操作系統功能訪問許可權或直接訪問硬體的許可權。但從另一角度來說,它們無需編譯器(可能非常昂貴),並且經常包含在操作系統中,通常比編譯型語言更容易編程

D. php跟java有什麼區別

PHP和Java是兩種完全不同的編程語言,它們有以下幾個區別:

E. Java,python分別是解釋型還是編譯型語言

Java,Python都是解釋型的,但是java會做一個語法檢查的預編譯,執行的時候才解釋成機器語言。
C、C++才是編譯型的
解釋型的通用性好,可以跨平台
編譯型的效率高。

F. Java 是編譯型語言還是解釋型語言

高級計算機語言主要有兩種類型:編譯和解釋。

這是一個跨平台的java,並可在任何地方運行:跨平台的java是基於JVM。Java虛擬機是由軟體或硬體模擬的計算機程序,java,計算機所有的.class文件是運行在JVM,即JVM *。只有Java類文件,以適應不同的操作系統,讓操作系統的安裝按照不同只要JVM的類型,然後程序無論哪個操作系統的JVM可以糾正窗口/其他...... JVM的Unix / JVM的實現因此,如果沒有JVM,就不能跨平台。

G. java是什麼類型的編程語言

分類需要確定從什麼角度去分。
1. 從語言等級上來分,java屬於高級語言,需要編譯成位元組碼之後才能運行。
2. 從語言設計思想來看,java屬於面向對象的語言,將所有的事物看成是對象,有封裝、繼承、多態等特性。
3. 從執行過程來看,java是一種混合型語言,java先編譯成位元組碼然後在JVM中解釋執行(編譯型語言需要帆賣經過編譯器將源代碼編譯成機器碼之後才能執行的語言,如C,C++;解釋型語言,不需要編譯,在運行程拿棗序的時候逐行翻譯,如JavaScript,python)。
4. 從運行時數據類型來分,java是一種靜態類型語言,或者說是強類型語言,它的數據類型在編譯期或者說運行前確定的,在定義變數時需要明確指定它消轎拆的數據類型,如果不經過強制類型轉換,它的類型就不會變。
綜合來說,java是一門強類型的、面向對象的混合型高級編程語言。

H. Java是解釋型還是編譯型

它既不屬於傳統的編譯型語言也不屬於解釋型語言。它是先編譯成.CLASS位元組碼文件,然後再利用虛擬機解釋執行的.可以說先編譯後解釋吧。

I. java是什麼類型的編程語言

一、你可以說它是編譯型的。因為所有的Java代碼都是要編譯的,.java不經過編譯就什麼用都沒有。
二、你可以說它是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋運行的,那也就算是解釋的了。
三、但是,現在的JVM為了效率,都有一些JIT優化。它又會把.class的二進制代碼編譯為本地的代碼直接運行,所以,又是編譯的。
像C、C++ 他們經過一次編譯之後直接可以編譯成操作系統了解的類型,可以直接執行的 所以他們是編譯型的語言。沒有經過第二次的處理 而Java不一樣他首先由編譯器編譯成.class類型的文件,這個是java自己類型的文件 然後在通過虛擬機(JVM)從.class文件中讀一行解釋執行一行,所以他是解釋型的語言,而由於java對於多種不同的操作系統有不同的JVM所以 Java實現了真正意義上的跨平台!

J. java屬於什麼語言

JAVA語言,就是屬於混合型語言,這是屬於解釋型語言和編譯型語言之間的一種語言。學習一門高級程序語言,很多人都推薦JAVA。JAVA能讓你學習到一門高級程序語言的方方面面,但又不會造成學習曲線過於陡峭

Java語言是一個支持網路計算的面向對象程序設計語言。Java語言吸收了Smalltalk語言和C++語言的優點,並增加了其它特性,如支持並發程序設計、網路通信、和多媒體數據控制等。主要特性如下:
1) Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。
2) Java語言是一個面向對象的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。孫肢Java語言全面支持動態綁定,而C++ 語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象者凱源程序設計語言。
3) Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java.net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠程方首態法激活)機制也是開發分布式應用的重要手段。
4) Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
5) Java語言是安全的。Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。
6) Java語言是體系結構中立的。Java程序(後綴為java的文件)在Java平台上被編譯為體系結構中立的位元組碼格式(後綴為class的文件), 然後可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網路環境和軟體的分發。
7) Java語言是可移植的。這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。
8) Java語言是解釋型的。如前所述,Java程序在Java平台上被編譯為位元組碼格式, 然後可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java解釋器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。
9) Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。
10) Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable) 的構造子將一個實現了Runnable介面的對象包裝成一個線程,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。 Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字為synchronized)。
11) Java語言是動態的。Java語言的設計目標之一是適應於動態變化的環境。Java程序需要的類能動態地被載入到運行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。
Java語言的優良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統的維護費用。Java對對象技術的全面支持和Java平台內嵌的API能縮短應用系統的開發時間並降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平台之間傳遞信息的低成本方式。特別是Java企業應用編程介面(Java Enterprise APIs)為企業計算及電子商務應用系統提供了有關技術和豐富的類庫。
1) JDBC(Java Database Connectivity)提供連接各種關系資料庫的統一介面。
2) EJB(Enterprise JavaBeans)使得開發者方便地創建、部署和管理跨平台的基於組件的企業應用。
3) Java RMI(Java Remote Method Invocation)用來開發分布式Java應用程序。一個Java對象的方法能被遠程Java虛擬機調用。這樣,遠程方法激活可以發生在對等的兩端,也可以發生在客戶端和伺服器之間,只要雙方的應用程序都是用Java寫的。
4) Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無逢的互操作性。這使得Java能集成異構的商務信息資源。
5) JNDI(Java Naming and Directory Interface)提供從Java平台到的統一的無逢的連接。這個介面屏蔽了企業網路所使用的各種命名和目錄服務。
6) JMAPI(Java Management API)為異構網路上系統、網路和服務管理的開發提供一整套豐富的對象和方法。
7) JMS(Java Message Service)提供企業消息服務,如可靠的消息隊列、發布和訂閱通信、以及有關推拉(Push/Pull)技術的各個方面。
8) JTS(Java transaction Service)提供存取事務處理資源的開放標准,這些事務處理資源包括事務處理應用程序、事務處理管理及監控。
在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是編譯性語言相關的資料

熱點內容
怎麼使用access的命令按鈕 瀏覽:897
有點錢app在哪裡下載 瀏覽:832
博途v15解壓後無法安裝 瀏覽:203
什麼是根伺服器主機 瀏覽:436
安卓手游怎麼申請退款 瀏覽:553
安卓系統如何分享網頁 瀏覽:278
ad如何編譯pcb工程 瀏覽:412
除了滴滴app哪裡還能用滴滴 瀏覽:399
截圖怎麼保存文件夾然後壓縮 瀏覽:8
幻影伺服器怎麼樣 瀏覽:27
具體哪些廣東公司招程序員 瀏覽:870
嵌入式編譯器教程 瀏覽:306
ssl數據加密傳輸 瀏覽:86
51單片機定時器方式2 瀏覽:331
命令行查看開機時間 瀏覽:813
python微博復雜網路分析 瀏覽:550
rf3148編程器 瀏覽:505
浙江標准網路伺服器機櫃雲主機 瀏覽:589
設置網路的伺服器地址 瀏覽:600
java圖形界面設計 瀏覽:751