當前位置:才華齋>計算機>java語言>

淺談JAVA語言特點

java語言 閱讀(1.95W)

JAVA是一門面向物件的語言,它具有什麼樣的特點呢?下面將就Java語言特點進行淺談,歡迎糾正指出不當的地方!

淺談JAVA語言特點

首先JAVA是一門面向物件的語言。何謂物件?萬物皆物件,我們思維能夠想象的任何一個有生命或者無生命,有形的或無形的事物。理論上講,你可以抽取待解決問題的任何概念化構件(人、狗、建築物、服務等),將其表示為程式中的物件。而每個物件都具有行為和狀態。具體如何操作這些狀態和行為,在這裡不做解釋。那麼什麼又是面向物件呢?表面看來,面向物件這個術語的意思是,把軟體組織成一系列離散的,合併了資料結構和行為的物件。這樣可能不好理解,換一種解釋。首先,它是解決問題的一種處理方式,將問題發出方和接收方的型別高度抽象成一個個的整體,各個整體之間產生的關係後,將會產生某些問題,對這些關係問題的處理,在於各個整體之間的方法實現,這種處理方法,整體意為物件,整個的程式設計叫做面向物件程式設計。

為了更好的解決面向物件問題,在實際操作類中有三個基本特性,繼承、多型、封裝。通過這些特性實現了面向物件的目標——“高內聚,低耦合”。下面我來逐一解釋這三個特性。

繼承是面向物件的一塊基石,因為他允許建立分等級層次的類。利用繼承我們可以建立一個通用的類,然後再由更具體的類來繼承他,再在這些類里加入自己特定的東西,這樣我們會節省很多程式碼。就如上面所說的一樣,這個被繼承的類稱為父類,繼承父類的類稱為子類,我們可以把子類看作是父類專門用途的一個版本,因為子類繼承了他,所以,他的內容子類裡面都有,但是子類還可以有一些自己的東西。JAVA中使用extends關鍵字來實現繼承類,語法為:Class 子類名extends 父類名{…}。

但需要注意的是,繼承中只能為每個子類定義一個父類,即JAVA不支援多繼承,可以按照規定建立一個繼承的層次。其中一個子類成為另一個子類的父類,然而沒有類可以成為自己的父類。在JAVA中可以繼承多個介面,但介面和繼承是完全不同的,介面沒有能力代替多重繼承,也沒有這個義務。其作用就是標誌類的類別,把不同型別為的類歸於不同的介面,可以更好的管理。

面向物件中操作類的第二個特性,多型又有什麼用處呢?多型即方法的過載。在JAVA類中不允許定義兩個相同方法名,並且引數名也完全相同的方法。如果存在這樣的類方法,將無法通過編譯,JAVA虛擬機器無法決定到底執行那個方法。對於類的方法(包括從父類繼承的方法),如果兩個方法名稱相同,但引數名不一致,可以說一個方法是另一個方法的過載方法。具體的使用規則不在這裡囉嗦了。(我已經非常囉嗦了^_^)

面向物件中操作類的第三個特性,封裝。 封裝這個詞聽起來好象是將什麼東西包裹起來不要別人看見一樣,就好象是把東西裝進箱子裡面,這樣別人就不知道箱子裡面裝的是什麼東西了。其實JAVA中的封裝這個概念也就和這個是差不多的意思。封裝是JAVA面向物件的特點的表現,封裝是一種資訊隱蔽技術它有兩個含義,即把物件的全部屬性和全部服務結合在一起,形成一個不可分割的`獨立單位,以及儘可能隱藏物件的內部結構,也就是說,如果我們使用了封裝技術的話,別人就只能用我們做出來的東西而看不見我們做的這個東西的內部結構了。例如,我們使用電腦網上聽歌。只需要開啟播放器,選中音樂就可聽到聲音了。而這個具體現實過程,我們則不知道了。

上面說了這麼多,講了類操作的三個基本特性。這些特性都是為了實現一個目標,即程式的高內聚,低耦合。高內聚,低耦合是程式設計的一個重要原則。高內聚表明的是一個聚集度,也可以理解成內聚高,就是程式邏輯相關、可以放在一起的都放在一起,而不要將相關的邏輯散落在各地,同時該處也不要做一些無關的事情,所以高內聚也可以理解成只處理自己職責相關的事情,這樣整個系統的職責非常清晰。這個原則其實在日常的生活中也是通用的,比如事情的組織,內容的整理如果遵循這個原則,則會看上去井井有條,反之則會非常混亂。低耦合表明了一個關聯度,對於不同的功能、職責其關聯應該儘可能的低,儘可能的正交,只讓彼此間保持必要的聯絡。這樣可以減少相互之間的影響,同時修改所波及的範圍可以做到最小。

JAVA語言的第二個得要特點,“跨平臺”。具有一次編寫多處執行的特點。這裡的平臺多指作業系統。JAVA程式不依懶於特定的作業系統,可以在不同的系統實現同樣的功能。而這一功能的實現要歸功於JAVA特有的執行機制——JAVA虛擬機器。如下圖:

從上圖我們可以看出,JAVA程式並不是直接交由作業系統處理,而是經過一系列加工,最後經過JAVA虛擬機器的直譯器解釋後再交由作業系統的。正是這一套機制使得JAVA程式可以不依懶作業系統,因為他有自己的處理機制可以根據不同系統編譯、解釋出適合於特定系統的程式碼,從而實現了跨平臺功能。

JAVA語言的第三個特點,“健壯性”。所謂健壯性就是指能夠抵得住儘可能多的意外和錯誤。程式有沒有健壯性也說說程式有沒有更強的容錯性、穩定性、安全性。在JAVA語言中程式沒有了指標的操作和對記憶體的釋放。你也許會說,不能對指標操作不是就不能對直接對硬體操作了嗎?的確,JAVA語言對硬體操作沒有C/C++強大。但正由於這一原因,更加提高了由JAVA編寫的程式碼的安全性。因為不能直接操作指標,降低了病毒對程式的干擾性(如:蠕蟲病毒。病毒程式碼一般通過對硬體操作來影響程式)。

另外關於記憶體釋放,在C/C++中規定誰建立記憶體單元,誰就負責釋放記憶體單元。而這樣往往會導致記憶體洩漏,建立者使用後忘記對記憶體釋放。然而這種情況在JAVA中卻不會出現,JAVA執行機制的“垃圾回收處理機制”很好的解決了記憶體釋放問題。程式設計師在編寫程式碼中所使用過後的記憶體單元會由JVM(JAVA虛擬機器)檢查並釋放。但我們要注意的是這種垃圾處理回收是有周期性的,也就是說他並不是立即清除你使用的記憶體,而是每隔一段時間清理一次。由於垃圾回收處理機制,程式設計師是無法控制和干擾的。那麼有沒有一種方法能夠讓我們手動的來處理垃圾回收,而不用等待他的週期性呢?答案是肯定的。()方法強制進行終結動作。可惜的是這個方法也並不好用,因為他的優先順序是最低的,要待到CPU空閒時才執行。凡事都有兩面性嘛,有好就好壞。一切都要遵照自然的法則

通過對JAVA語言的初步學習,瞭解到這門對我熟悉而又陌生的語言一些特點。更多內容請關注應屆畢業生考試網!