20165233 Java第7、十章學習總結

20165233 2017-2018-2 《Java程序設計》第五週學習總結

教材學習內容總結

ch07

  • 內部類:Java支持在一個類中聲明另外一個類,這樣的類稱爲內部類,而包含內部類的類稱爲內部類的外嵌類。java

  • 匿名類git

    • 和某類有關的匿名類就是該類的一個子類,該子類沒有明顯地用類聲明來定義,因此稱爲匿名類。數組

    • 和某接口有關的匿名類就是實現該接口的一個類,給子類沒有明顯地用類聲明來定義,因此稱爲匿名類。編輯器

  • 異常類學習

    • Java方法調用時可能出現異常,利用try-catch語句來處理。
  • 斷言:assert關鍵字設計

ch10

  • InputStream的子類建立的對象爲字節輸入流,每次調取方法按順序讀取源中內容,直到末尾或流被關閉。3d

  • OutputStream的子類建立的對象爲字節輸出流,一樣是按順序寫入。調試

  • Reader的子類建立的對象爲字符輸入流,一樣按順序讀入。code

  • Write的子類建立的對象爲字符輸出流,同理。對象

  • File類

  • 文件字節輸入、輸出流

  • 文件字符輸入、輸出流

  • 緩衝流、隨機流、數組流、數據流、對象流

  • 序列化與對象克隆

  • 使用Scanner解析文件

  • 文件鎖

教材學習中的問題和解決過程

  • 問題1:throwthrows的區別是什麼?
  • 問題1解決方案:throw這個關鍵字的做用是拋出異常;throws是方法可能拋出異常的聲明。總的來講,一個方法在聲明時可使用throws關鍵字聲明要產生的若干個異常,再用相應的異常類建立對象,並使用throw關鍵字拋出該異常對象。
  • 問題2:序列化是什麼?
  • 問題2解決方案:序列化是Java中一種特殊的文本表示,序列化就是和Serializable接口相關的東西。序列化 (Serialization)將對象的狀態信息轉換爲能夠存儲或傳輸的形式的過程。在序列化期間,對象將其當前狀態寫入到臨時或持久性存儲區。之後,能夠經過從存儲區中讀取或反序列化對象的狀態,從新建立該對象。

代碼調試中的問題和解決過程

  • 問題1:教材293頁中的Example10_8.java的例子,import java.io.**;**的做用是什麼?爲何使用**時,編譯就會報錯,寫成*時,就可以正常編譯、運行呢?

  • 問題1解決方案:這個問題暫時沒有解決,沒有找到緣由,而且每次使用*均可以正常運行。
  • 問題2:教材284頁中的Example10_3.java,Mac中找不到文本編輯器(Mac的記事本)的路徑與可執行文件?
  • 問題2解決方案:在網上尋找過,但也都沒有此問題的解答。

代碼託管

上週考試錯題總結

  • 錯題1:下列關於構造方法敘述正確的是:D.帶有返回值的方法必定不是構造方法。

緣由:本題爲多選題,漏選該選項,對於構造方法的判斷條件掌握不全面。

理解狀況:構造方法沒有類型,沒有返回值,且名字與它所在的類的名字徹底相同。

  • 錯題2:下列關於實例變量和類變量的說法錯誤的是:B.分配給不一樣對象的類變量佔有不一樣的內存空間,改變其中一個對象的實例變量不會影響其餘對象的實例變量。

緣由:對於實例變量與類變量的一些細節知識點掌握不熟練。

理解狀況:這是對「實例變量」的描述,而非「類變量」。錯選爲C.建立類的對象時,類變量再也不從新分配內存。

  • 錯題3:如下對重載描述錯誤的是B.構造方法不能重載。

緣由:對該知識點不太清楚。

理解狀況:已掌握。

  • 錯題4:下列代碼的執行結果均爲true.
int i = 128;
Integer i2 = 128;
Integer i3 = new Integer(128);
System.out.println(i==i2);
System.out.println(i==i3);

緣由:未掌握Integer的類型。

理解狀況:Integer類型的對象包含一個int類型的字段,Integer會自動拆箱爲int,所以值相等。

其餘(感悟、思考等,可選)

本週學習內容中間跨度有些大,越過八、9章,學習第10章時,發現有沒有學到過的知識點。第7章聽課的時候沒有那麼難理解了,可是要注意到細節的地方特別多,在看程序題的時候仍是有些費勁。第10章在流的這部份內容相近,也較好掌握,可是感受文件鎖等知識點難度增大了。

相關文章
相關標籤/搜索