【Java 基礎】——物件導向

ZeroWM發表於2014-09-14

  現在處於軟考備考時期,緊張而有序,第一階段J2SE的學習,差不多用了一個星期的時間,馬士兵老師的J2SE,有一種相見恨晚的感覺。馬老師不僅僅能把JAVA講的詼諧幽默,通俗易懂,還會在學習方法上對我們進行指導,久旱逢甘霖的感覺是極好的!

  學完了之後,對物件導向的部分共鳴還是比較大的。原因:第一,之前所學的VB.NET、C#、VB,都跟它有多相似之處;第二、設計模式過後,再看物件導向,理解更加立體了。

  下面是我對這部分的總結:

  

  語言基礎和結構與VB很類似,至於物件導向特徵,VB是基於物件,不支援過載、介面、繼承等, Java是純物件導向的語言,支援這些物件導向的特性。

  物件導向設計很重要的一點就是抽象。不得不提一下介面抽象類。介面中只能定義方法和常量,但是不能有變數和方法的實現,它是一種特殊的抽象類。使用抽象類,繼承這個抽象類的子類型別比較單一,因為子類只能單繼承抽象類;而子類能夠同時實現多個介面,因為型別比較多。

  Java介面和Java抽象類的存在就是為了用於具體類的實現和繼承的,如果你準備寫一個具體類去繼承另一個具體類的話,那你的設計就有很大問題了。Java抽象類就是為了繼承而存在的,它的抽象方法就是為了強制子類必須去重寫的。

   此處還有一點,特別特別重要,就是記憶體分析,這部分要是搞懂了,以後走遍中國面試都沒問題了。

棧:存放區域性變數,形參(定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳遞的引數)、實參(呼叫時傳遞給函式的引數,即傳遞給被呼叫函式的值)。對於棧的記憶體,方法一旦呼叫完成,記憶體立馬就消失。

堆:存放new出來的物件,成員變數。堆的記憶體使用完成後,不是馬上消失的,當沒有任何一個引用指向堆中物件,垃圾回收器翩翩而來,優雅的把它收走~

資料區:靜態變數(屬於整個類,非私有)存放在這,只能存放一份,字串常量也存放於此。

程式碼區:存放程式碼。


  Java是一種物件導向的語言。Java虛擬機器讓該語言擁有了一次編譯,多平臺執行的超強適應能力,垃圾收集機制,讓計算機的記憶體得到了更充分的利用。這樣一種吸收了C/C++語言精華,去其槽粕的語言,怎麼能不讓大眾喜歡呢?Java之路剛剛開始,期待軟考過後的再次相遇。

總結很簡單,還望多多指正!



相關文章