1. 程式人生 > 程式設計 >java程式設計語言的優勢及特點

java程式設計語言的優勢及特點

java語言是一種面向物件的程式設計語言嗎

java語言是面向物件的程式設計語言

支援部分或絕大部分面向物件特性(類和例項、封裝性、繼承、多型)的語言即可稱為基於物件的或面向物件的語言。Java跟C#是目前最流行的兩門面向物件語言。

面嚮物件語言可以歸類為:

1、基於物件的程式設計語言;

2、面向物件的程式設計語言。

面向物件程式設計具有以下優點:

1、易維護

採用面向物件思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在區域性模組,所以維護起來是非常方便和較低成本的。

2、易擴充套件

通過繼承,我們可以大幅減少多餘的程式碼,並擴充套件現有程式碼的用途;

我們可以在標準的模組上(這裡所謂的”標準”指程式設計師之間彼此達成的協議)構建我們的程式,而不必一切從頭開始。這可以減少軟體開發時間並提高生產效率;

3、模組化

封裝可以定義物件的屬性和方法的訪問級別,通過不同的訪問修飾符對外暴露安全的介面,防止內部資料在不安全的情況下被修改。這樣可以使程式具備更高的模組化程度,方便後期的維護和修改。

同時,面嚮物件語言允許一個物件的多個例項同時存在,而且彼此之間不會相互干擾;

4、建模

雖然面嚮物件語言中的物件與現實生活中的物件並不是同個概念,但很多時候,往往可以使用現實生活中物件的概念抽象後稍作修改來進行建模,這大大方便了建模的過程。(但直接使用現實中的物件來建模有時會適得其反)。

內容擴充:

1.簡單

Java最初是為對家用電器進行整合控制而設計的一種語言,因此它必須簡單明瞭。Java語言的簡單性主要體現在以下三個方面:

1) Java的風格類似於C++,因而C++程式設計師是非常熟悉的。從某種意義上講,Java語言是C及C++語言的一個變種,因此,C++程式設計師可以很快就掌握Java程式設計技術。

2) Java摒棄了C++中容易引發程式錯誤的地方,如指標和記憶體管理。

3) Java提供了豐富的類庫。

2.面向物件

面向物件可以說是Java最重要的特性。Java語言的設計完全是面向物件的,它不支援類似C語言那樣的面向過程的程式設計技術。Java支援靜態和動態風格的程式碼繼承及重用。單從面向物件的特性來看,Java類似於Small Talk,但其它特性、尤其是適用於分散式計算環境的特性遠遠超越了Small Talk。

3.分散式

Java包括一個支援HTTP和FTP等基於TCP/IP協議的子庫。因此,Java應用程式可憑藉URL開啟並訪問網路上的物件,其訪問方式與訪問本地檔案系統幾乎完全相同。為分佈環境尤其是Internet提供的動態內容無疑是一項非常巨集偉的任務,但Java的語法特性卻使我們很容易地實現這專案標。

4.健壯

Java致力於檢查程式在編譯和執行時的錯誤。型別檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱記憶體減少了記憶體出錯的可能性。Java還實現了真陣列,避免了覆蓋資料的可能。這些功能特徵大大縮短了開發Java應用程式的週期。Java提供Null指標檢測陣列邊界檢測異常出口位元組程式碼校驗。

5.結構中立

另外,為了建立Java作為網路的一個整體,Java將它的程式編譯成一種結構中立的中間檔案格式。只要有Java執行系統的機器都能執行這種中間程式碼。現在,Java執行系統有Solaris2.4(SPARC),Win32系統(Windows95和WindowsNT)等.Java源程式被編譯成一種高層次的與機器無關的byte-code格式語言,這種語言被設計在虛擬機器上執行,由機器相關的執行偵錯程式實現執行。

6.安全

Java的安全性可從兩個方面得到保證。一方面,在Java語言裡,象指標和釋放記憶體等C++功能被刪除,避免了非法記憶體操作。另一方面,當Java用來建立瀏覽器時,語言功能和瀏覽器本身提供的功能結合起來,使它更安全。Java語言在你的機器上執行前,要經過很多次的測試。它經過程式碼校驗,檢查程式碼段的格式,檢測指標操作,物件操作是否過分以及試圖改變一個物件的型別。

7.可移植的

這句話一直是Java程式設計師們的精神指標,也是Java之所以能夠受到程式設計師們喜愛的原因之一,最大的功臣就是JVM的技術。大多數編譯器產生的目的碼只能執行在一 種CPU上(如Intel的x86系列),即使那些能支援多種CPU的編譯器也不能同時產生適合多 種CPU的目的碼。如果你需要在三種CPU( 如x86、SPARC 和MIPS)上運行同一程式,就必須編譯三次。

但JAVA編譯器就不同了。JAVA編譯器產生的目的碼(J-Code) 是針對一種並不 存在的CPU--JAVA虛擬機器(JAVA Virtual Machine),而不是某一實際的CPU。JAVA虛擬機器能掩蓋不同CPU之間的差別,使J-Code能運行於任何具有JAVA虛擬機器的機器上。

虛擬機器的概念並不AVA 所 特 有 的:加州大學幾年前就提出了PASCAL虛擬機器的概念;廣泛用於Unix伺服器的Perl指令碼也是產生與機器無關的中間程式碼用於執行。但針對Internet應用而設計的JAVA虛擬機器的特別之處在於它能產生安全的不受病毒威脅的目的碼。正是由於Internet對安全特性的特別要求才使得JVM能夠迅速被人們接受。 當今主 流的作業系統如OS/2、MacOS、Windows95/NT都已經或很快提供對J-Code的支援。

作為一種虛擬的CPU,JAVA 虛擬機器對於原始碼(Source Code) 來說是獨立的。我們不僅可以用JAVA語言來生成J-Code,也可以用Ada95來生成。事實上,已經有了針對若干種原始碼的J-Code 編譯器,包括Basic、Lisp 和Forth。原始碼一經轉換成J-Code以後,JAVA虛擬機器就能夠執行而不區分它是由哪種原始碼生成的。這樣做的結果就是CPU可移植性。 將源程式編譯為J-Code的好處在於可運行於各種機器上,而缺點是它不如本機程式碼執行的速度快。

同體繫結構無關的特性使得Java應用程式可以在配備了Java直譯器和執行環境的任何計算機系統上執行,這成為Java應用軟體便於移植的良好基礎。但僅僅如此還不夠。如果基本資料型別設計依賴於具體實現,也將為程式的移植帶來很大不便。例如在Windows3.1中整數(Integer)為16bits,在Windows95中整數為32bits,在DECAlpha中整數為64bits,在Intel486中為32bits。通過定義獨立於平臺的基本資料型別及其運算,Java資料得以在任何硬體平臺上保持一致。Java語言的基本資料型別及其表示方式如下:byte8-bit二進位制補碼short16-bit二進位制補碼int32-bit二進位制補碼long64-bit二進位制補碼float32-bitIEEE754浮點數double32-bitIEEE754浮點數char16-bitUnicode字元在任何Java直譯器中,資料型別都是依據以上標準具體實現的。因為幾乎目前使用的所有CPU都能支援以上資料型別、8~64位整數格式的補碼運算和單/雙精度浮點運算。Java編譯器本身就是用Java語言編寫的。Java運算系統的編制依據POSIX方便移植的限制,用ANSIC語言寫成。Java語言規範中也沒有任何"同具體實現相關"的內容。

8.解釋的

Java直譯器(執行系統)能直接執行目的碼指令。連結程式通常比編譯程式所需資源少,所以程式設計師可以在建立源程式上花上更多的時間。

9.高效能

如果直譯器速度不慢,Java可以在執行時直接將目的碼翻譯成機器指令。Sun用直接直譯器一秒鐘內可呼叫300,000個過程。翻譯目的碼的速度與C/C++的效能沒什麼區別。

10.多執行緒

多執行緒功能使得在一個程式裡可同時執行多個小任務。執行緒--有時也稱小程序--是一個大程序裡分出來的小的獨立的程序。因為Java實現的多執行緒技術,所以比C和C++更鍵壯。多執行緒帶來的更大的好處是更好的互動效能和實時控制性能。當然實時控制性能還取決於系統本身(UNIX,Windows,Macintosh等),在開發難易程度和效能上都比單執行緒要好。任何用過當前瀏覽器的人,都感覺為調一副圖片而等待是一件很煩惱的事情。在Java裡,你可用一個單執行緒來調一副圖片,而你可以訪問HTML裡的其它資訊而不必等它。

11.動態

Java的動態特性是其面向物件設計方法的發展。它允許程式動態地裝入執行過程中所需要的類,這是C++語言進行面向物件程式設計所無法實現的。在C++程式設計過程中,每當在類中增加一個例項變數或一種成員函式後,引用該類的所有子類都必須重新編譯,否則將導致程式崩潰。Java從如下幾方面採取措來解決這個問題。Java編譯器不是將對例項變數和成員函式的引用編譯為數值引用,而是將符號引用資訊在位元組碼中儲存下傳遞給直譯器,再由直譯器在完成動態連線類後,將符號引用資訊轉換為數值偏移量。這樣,一個在儲存器生成的物件不在編譯過程中決定,而是延遲到執行時由直譯器確定的。這樣,對類中的變數和方法進行更新時就不至於影響現存的程式碼。解釋執行位元組碼時,這種符號資訊的查詢和轉換過程僅在一個新的名字出現時才進行一次,隨後程式碼便可以全速執行。在執行時確定引用的好處是可以使用已被更新的類,而不必擔心會影響原有的程式碼。如果程式連線了網路中另一系統中的某一類,該類的所有者也可以自由地對該類進行更新,而不會使任何引用該類的程式崩潰。Java還簡化了使用一個升級的或全新的協議的方法。如果你的系統執行Java程式時遇到了不知怎樣處理的程式,沒關係,Java能自動下載你所需要的功能程式。四.與C和C++語言的異同 Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++還是被大家所接受,所以Java設計成C++形式,讓大家很容易學習。Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,並增加了一個很有用的功能,Java去掉了以下幾個C和C++功能和特徵:指標運算結構typedefs#define需要釋放記憶體全域性變數的定義這個功能都是很容易引起錯誤的地方。

12. Unicode

Java使用Unicode作為它的標準字元,這項特性使得Java的程式能在不同語言的平臺上都能撰寫和執行。簡單的說,你可以把程式中的變數、類別名稱使用中文來表示<注>,當你的程式移植到其它語言平臺時,還是可以正常的執行。Java也是目前所有計算機語言當中,唯一天生使用Unicode的語言。以上就是java語言是一種面向物件的程式設計語言嗎的詳細內容

以上就是我們結合多篇整理的相關內容,感謝大家的學習和支援。