- 相關(guān)推薦
淺談JAVA語言特點
JAVA是一門面向?qū)ο蟮恼Z言,它具有什么樣的特點呢?下面將就Java語言特點進行淺談,歡迎糾正指出不當?shù)牡胤?
首先JAVA是一門面向?qū)ο蟮恼Z言。何謂對象?萬物皆對象,我們思維能夠想象的任何一個有生命或者無生命,有形的或無形的事物。理論上講,你可以抽取待解決問題的任何概念化構(gòu)件(人、狗、建筑物、服務(wù)等),將其表示為程序中的對象。而每個對象都具有行為和狀態(tài)。具體如何操作這些狀態(tài)和行為,在這里不做解釋。那么什么又是面向?qū)ο竽?表面看來,面向?qū)ο筮@個術(shù)語的意思是,把軟件組織成一系列離散的,合并了數(shù)據(jù)結(jié)構(gòu)和行為的對象。這樣可能不好理解,換一種解釋。首先,它是解決問題的一種處理方式,將問題發(fā)出方和接收方的類型高度抽象成一個個的整體,各個整體之間產(chǎn)生的關(guān)系后,將會產(chǎn)生某些問題,對這些關(guān)系問題的處理,在于各個整體之間的方法實現(xiàn),這種處理方法,整體意為對象,整個的程序設(shè)計叫做面向?qū)ο蟪绦蛟O(shè)計。
為了更好的解決面向?qū)ο髥栴},在實際操作類中有三個基本特性,繼承、多態(tài)、封裝。通過這些特性實現(xiàn)了面向?qū)ο蟮哪繕?mdash;—“高內(nèi)聚,低耦合”。下面我來逐一解釋這三個特性。
繼承是面向?qū)ο蟮囊粔K基石,因為他允許創(chuàng)建分等級層次的類。利用繼承我們可以創(chuàng)建一個通用的類,然后再由更具體的類來繼承他,再在這些類里加入自己特定的東西,這樣我們會節(jié)省很多代碼。就如上面所說的一樣,這個被繼承的類稱為父類,繼承父類的類稱為子類,我們可以把子類看作是父類專門用途的一個版本,因為子類繼承了他,所以,他的內(nèi)容子類里面都有,但是子類還可以有一些自己的東西。JAVA中使用extends關(guān)鍵字來實現(xiàn)繼承類,語法為:Class 子類名extends 父類名{…}。
但需要注意的是,繼承中只能為每個子類定義一個父類,即JAVA不支持多繼承,可以按照規(guī)定創(chuàng)建一個繼承的層次。其中一個子類成為另一個子類的父類,然而沒有類可以成為自己的父類。在JAVA中可以繼承多個接口,但接口和繼承是完全不同的,接口沒有能力代替多重繼承,也沒有這個義務(wù)。其作用就是標志類的類別,把不同類型為的類歸于不同的接口,可以更好的管理。
面向?qū)ο笾胁僮黝惖牡诙䝼特性,多態(tài)又有什么用處呢?多態(tài)即方法的重載。在JAVA類中不允許定義兩個相同方法名,并且參數(shù)名也完全相同的方法。如果存在這樣的類方法,將無法通過編譯,JAVA虛擬機無法決定到底執(zhí)行那個方法。對于類的方法(包括從父類繼承的方法),如果兩個方法名稱相同,但參數(shù)名不一致,可以說一個方法是另一個方法的重載方法。具體的使用規(guī)則不在這里啰嗦了。(我已經(jīng)非常啰嗦了^_^)
面向?qū)ο笾胁僮黝惖牡谌齻特性,封裝。 封裝這個詞聽起來好象是將什么東西包裹起來不要別人看見一樣,就好象是把東西裝進箱子里面,這樣別人就不知道箱子里面裝的是什么東西了。其實JAVA中的封裝這個概念也就和這個是差不多的意思。封裝是JAVA面向?qū)ο蟮奶攸c的表現(xiàn),封裝是一種信息隱蔽技術(shù)它有兩個含義,即把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨立單位,以及盡可能隱藏對象的內(nèi)部結(jié)構(gòu),也就是說,如果我們使用了封裝技術(shù)的話,別人就只能用我們做出來的東西而看不見我們做的這個東西的內(nèi)部結(jié)構(gòu)了。例如,我們使用電腦網(wǎng)上聽歌。只需要打開播放器,選中音樂就可聽到聲音了。而這個具體現(xiàn)實過程,我們則不知道了。
上面說了這么多,講了類操作的三個基本特性。這些特性都是為了實現(xiàn)一個目標,即程序的高內(nèi)聚,低耦合。高內(nèi)聚,低耦合是程序設(shè)計的一個重要原則。高內(nèi)聚表明的是一個聚集度,也可以理解成內(nèi)聚高,就是程序邏輯相關(guān)、可以放在一起的都放在一起,而不要將相關(guān)的邏輯散落在各地,同時該處也不要做一些無關(guān)的事情,所以高內(nèi)聚也可以理解成只處理自己職責相關(guān)的事情,這樣整個系統(tǒng)的職責非常清晰。這個原則其實在日常的生活中也是通用的,比如事情的組織,內(nèi)容的整理如果遵循這個原則,則會看上去井井有條,反之則會非;靵y。低耦合表明了一個關(guān)聯(lián)度,對于不同的功能、職責其關(guān)聯(lián)應(yīng)該盡可能的低,盡可能的正交,只讓彼此間保持必要的聯(lián)系。這樣可以減少相互之間的影響,同時修改所波及的范圍可以做到最小。
JAVA語言的第二個得要特點,“跨平臺”。具有一次編寫多處運行的特點。這里的平臺多指操作系統(tǒng)。JAVA程序不依懶于特定的操作系統(tǒng),可以在不同的系統(tǒng)實現(xiàn)同樣的功能。而這一功能的實現(xiàn)要歸功于JAVA特有的運行機制——JAVA虛擬機。如下圖:
從上圖我們可以看出,JAVA程序并不是直接交由操作系統(tǒng)處理,而是經(jīng)過一系列加工,最后經(jīng)過JAVA虛擬機的解釋器解釋后再交由操作系統(tǒng)的。正是這一套機制使得JAVA程序可以不依懶操作系統(tǒng),因為他有自己的處理機制可以根據(jù)不同系統(tǒng)編譯、解釋出適合于特定系統(tǒng)的代碼,從而實現(xiàn)了跨平臺功能。
JAVA語言的第三個特點,“健壯性”。所謂健壯性就是指能夠抵得住盡可能多的意外和錯誤。程序有沒有健壯性也說說程序有沒有更強的容錯性、穩(wěn)定性、安全性。在JAVA語言中程序沒有了指針的操作和對內(nèi)存的釋放。你也許會說,不能對指針操作不是就不能對直接對硬件操作了嗎?的確,JAVA語言對硬件操作沒有C/C++強大。但正由于這一原因,更加提高了由JAVA編寫的代碼的安全性。因為不能直接操作指針,降低了病毒對程序的干擾性(如:蠕蟲病毒。病毒代碼一般通過對硬件操作來影響程序)。
另外關(guān)于內(nèi)存釋放,在C/C++中規(guī)定誰創(chuàng)建內(nèi)存單元,誰就負責釋放內(nèi)存單元。而這樣往往會導(dǎo)致內(nèi)存泄漏,創(chuàng)建者使用后忘記對內(nèi)存釋放。然而這種情況在JAVA中卻不會出現(xiàn),JAVA運行機制的“垃圾回收處理機制”很好的解決了內(nèi)存釋放問題。程序員在編寫代碼中所使用過后的內(nèi)存單元會由JVM(JAVA虛擬機)檢查并釋放。但我們要注意的是這種垃圾處理回收是有周期性的,也就是說他并不是立即清除你使用的內(nèi)存,而是每隔一段時間清理一次。由于垃圾回收處理機制,程序員是無法控制和干擾的。那么有沒有一種方法能夠讓我們手動的來處理垃圾回收,而不用等待他的周期性呢?答案是肯定的。System.gc()方法強制進行終結(jié)動作?上У氖沁@個方法也并不好用,因為他的優(yōu)先級是最低的,要待到CPU空閑時才運行。凡事都有兩面性嘛,有好就好壞。一切都要遵照自然的法則。
通過對JAVA語言的初步學習,了解到這門對我熟悉而又陌生的語言一些特點。更多內(nèi)容請關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!
【淺談JAVA語言特點】相關(guān)文章:
Java語言特點07-10
淺談Java語言的優(yōu)點06-01
淺談Java中的弱引用10-27
淺談Java語言中static的作用08-10
淺談Java未來的發(fā)展方向09-02
淺談Java類與類之間的關(guān)系09-03
淺談如何使用java多線程10-17
淺談理解Java中的弱引用07-22