java學習總結及心得體會

南無大乘妙法蓮華經發表於2015-08-02

  前言: 

  哈哈,今天是2015年8月2號,星期日,今天是收貨的一天,很開心,很快樂。到底發生了什麼呢,容我慢慢來。。。

  世界很大,人生有限,在這有限的時間裡,你能做些什麼,你該做什麼,如何去做,你來到這裡究竟是為了什麼,你想過嗎?

  這幾天,我好像開竅了,我知道我該去做什麼了。借用一句話,“有一天,你終於知道,你該去做什麼,於是你開始去做”,這是《太極跑》中的一段話。

  我是一個孩子,很傻,但是我喜歡自己。我熱愛跑步,熱愛運動,每週至少四天晨跑,堅持了好多年了。前天北京和張家口申奧成功,我激動的哭了,以前經常往返兩個城市,一種莫名的愛,莫名的感動。

  本來是昨天晚上總結的,因為檢視android開發的資料,搜尋到很晚,東西好多,手裡的資料也很多,壓力很大,學習空間很大,加油!

  好了,我們開始吧,我用了兩個多星期的時間,學習了java基礎知識,照著25天的視訊學的,講的還不錯,中間我也跟著敲了好多,應該算剛剛入門吧,學而時習之,不亦樂乎,學而不思則罔,思而不學則殆,學無止境,來吧!這裡只總結一些比較實用及重點內容

  一:java語言基礎部分

    1:基本資料型別

    java語言有8種基本資料型別:byte(佔1個位元組),short(佔2個位元組),int(佔4個位元組),long(佔8個位元組),float(佔4個位元組),double(佔8個位元組),char(佔2個位元組),boolean(佔1個位元組)。

    2:java命名規則:

    包名:所有字母都小寫,比如,xxxyyyzzz

    類名,介面名:所有單詞首字母大寫,比如,XxxYyyZzz

    變數名,函式名:第一個單詞小寫,其他單詞首字母大寫,比如,xxxYyyZzz

    常量名:所有字母大寫,多單詞用下劃線分割,比如,XXX_YYY_ZZZ

    3:運算子優先順序:

    邏輯與&&      優先順序  大於  邏輯或||

          按位與&         優先順序  大於  按位或|

    4:JKD1.7 switch表示式的值支援字串,比如swtich("週一")   ...

    5:高階for迴圈(這個在遍歷集合中很給力)

    格式:for(資料型別 變數名:被遍歷的集合(Collection)或陣列)   {}

  二:類、物件及特性

    1:類和物件

    類:對現實生活中事物的描述

    物件:就是這類事物中實實在在的個體,java中一切都是物件,具體物件是java在堆記憶體中用new建立的實體

    2:許可權修飾符

      一個.java檔案中只能有一個public類

      static: 用於修飾成員(成員變數和成員方法),當成員被static修飾後,該成員可被類名直接呼叫,類名.靜態成員

      static修飾後的特點:

        隨著類的載入而載入,優先於物件存在,被所有物件共享,可以被類名直接呼叫。

        靜態方法只能訪問靜態成員,其方法中不能定義super,this關鍵字,因為靜態優先於物件存在,主函式是靜態的

        靜態優點:把物件的共享資料單獨儲存,節省空間,可被類名直接呼叫。缺點:生命週期過長,訪問出現侷限(只能訪問靜態)。

    3:this關鍵字:代表本類物件,哪個物件呼叫this所在的函式,this就代表哪個物件

    4:建構函式

      一個類中預設會有一個空引數的建構函式,其許可權和所屬類的許可權一致

      作用是給物件進行初始化,物件一建立就會呼叫與之對應的建構函式。  

      這個地方有容易混淆的地方,面試時會遇到,開發者一般不會玩這個,就是靜態程式碼塊和構造程式碼塊,舉個例子,看下圖吧:


    靜態程式碼塊用來給類初始化,比構造程式碼塊先執行,後者給物件初始化,然後才建構函式執行。希望大家瞭然。。。

    5:特性

    封裝:隱藏物件屬性和實現細節,僅對外提供公共訪問方式,提高複用性和安全性

    繼承:必須類與類間有關係才能繼承,提高程式碼複用性,java只支援單繼承,但是可以有多層繼承,但是可以用實現來彌補

      子類為什麼一定要訪問父類的建構函式呢:因為父類中的資料,子類是可以直接獲取的,所以子類物件在建立的時候,需要先檢視父類是如何對這些資料進行初始化的,如果要指定父類中指定的建構函式,可以手動定義super語句來實現。

    看練習:


    多型:某一類事物的多種存在形態

      多型的實現:父類的引用指向了自己的子類物件(向上轉型)

      多型的前提:類與類之間有關係,繼承或實現,通常還存在覆蓋

      多型的好處:提高程式擴充套件性,弊端:父類引用只能訪問父類中成員。

    此處有練習題:


    6:抽象類(裡面有一些看不懂的東西)哈哈

      抽象方法一定在抽象類中

      抽象方法和抽象類必須被關鍵字abstract修飾

      抽象類不能用new建立物件,不能例項化,因為沒意義,方法沒內容

      抽象類中的抽象方法要被使用,必須由子類重寫所有的抽象方法後,建立子類物件呼叫

    7:介面

    介面是對外暴露的規則,是程式的功能擴充套件,介面可以用來多實現,類與介面是實現關係,類可以繼承一個類的同時實現多個介面,介面與介面間可有繼承關係。

    介面是特殊的抽象類,介面成員有固定修飾符,常量:public static final 方法:public abstract

    介面不能建立物件,被子類實現後,子類需重寫介面中所有抽象方法,這樣子類才能例項化,否則子類還是一個抽象類。

    8:重寫與過載

    重寫:是對父類方法的重寫,子父類方法要一模一樣

    過載:同名函式的引數列表不同,看練習:

    

    9:內部類

    描述事物時,事物內部還有事物,該事物可用內部類描述,比如人體類裡有心臟類,,,

                Java的內部類構造時持有對外部類的應用,C++不會,這一點和C++不一樣。這點容易引起記憶體洩露,要注意.

    在Java中,非靜態的內部類和匿名內部類都會隱式地持有其外部類的引用。靜態的內部類不會持有外部類的引用。可以參考這裡:

細話Java:"失效"的private修飾符

    內部類訪問規則:

      內部類可直接訪問外部類(這裡的意思當然就是包含內部類的類)中成員,包括私有

      外部類要訪問內部類,必須建立內部類物件

      內部類可被static修飾,此時其只能訪問靜態成員了,這個你都會了,哈哈。但是內部類定義在區域性時,也就是在外部類的方法中定義一個類,此時的內部類是不能被成員修飾符修飾的,此時仍能訪問外部類中的成員,並只能訪問其所在的區域性中的被final關鍵字修飾的區域性變數。這個有點繞,開發中用的少,面試,哈哈,大熱門哦。。。

    匿名內部類,這個在開發中也是可以用的,這個一般是繼承或實現一個類,呼叫或重寫其方法時方便的使用,缺點是可讀性較差。。。

    10:異常處理機制

    java兩個重要特性,垃圾回收機制和異常處理機制,使得java沒有記憶體洩露,實現平臺無關。

    這個地方注意catch捕捉到異常後要有個處理,不要不寫也不要直接toString,printStackTrace(),要處理哦。還有一些必須執行的語句要放到finally程式碼塊中,比如資料庫的關閉等。

    throws和throw區別:

      throws使用在函式上,throw使用在函式內

      throws後面跟異常類名,可以跟多個,逗號隔開,throw後跟異常物件。

    自定義異常類,只需繼承Exception類,自定義輸出內容的話,在建構函式裡呼叫Exception類的建構函式,寫super(str)即可,這個str就是你建構函式引數,也就是你自定義的輸出內容,哈哈。。。

    三:java其他核心技術

    1:java集合類和泛型

    2:I/O

    3:多執行緒

    4:網路

    5:GUI


  

相關文章