20165233 Java第8、十五章學習總結

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

教材學習內容總結

ch08

  • 基礎:String類
  • 重點:StringTokenizer類、Scanner類;獲取字符序列中被分隔符分隔的單詞。
  • 拓展:StringBuffer類、Date類與Calendar類(程序須要處理時間時使用)、日期格式化、Math類、BigInteger類(程序須要處理特別大的整數)與Random類、數字格式化(當須要格式化日期和數字時,使用String類的static方法format)
  • 難點:Class類與Console類、Pattern類與Match類

ch15

  • 泛型:使用「class 名稱 <泛型列表> 」聲明一個泛型類,當使用泛型類聲明對象時,必需要用具體的類型(不能是基本數據類型)替換泛型列表中的泛型。
  • 鏈表:LinkedList 泛型類建立的對象以鏈表結構存儲數據。
  • 堆棧:Stack 泛型類建立一個堆棧對象,堆棧老是在頂端進行數據的輸入輸出操做。
  • 散列映射:HashMap<K,V>用於存儲鍵/值數據對,使用散列映射來存儲常常須要檢索的數據,能夠減小檢索的開銷。
  • 樹集:TreeSet 類建立樹集,當一個樹集中的數據是實現Comparable接口類建立的對象時,結點就按對象的大小關係升序排列。
  • 樹映射:TreeMap<K,V>類建立樹映射時,樹映射的結點存儲鍵/值對,和樹集不一樣的是,樹映射保證結點是按照結點中的鍵升序排列。

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

  • 問題1:教材192頁Example8_12的程序中,%-7.2f的含義是什麼?
  • 問題1解決方案:查找教材的207頁獲得了答案。%-md指在數字右面加空格,數字長度爲7,且保留兩位小數。
  • 問題2:爲何Scanner類沒有傳單詞個數的方法呢?
  • 問題2解決方案:Scanner類不把單詞存放到Scanner對象的實體中,僅僅存放怎樣獲取單詞的分隔標記來節省內存空間,這樣Scanner類就不像StringTokenizer類的對象一旦誕生就馬上知道單詞數目,並經過countTokens()方法返回單詞數目,Scanner類必須一個一個地獲取才能知道單詞數目。
  • 問題3:教材198頁Example8_15中,month = calendar.get(Calendar.MONTH)+1爲何要加1?
  • 問題3解決方案:因爲程序自己計算月份是從0開始,加1後符合人們的認知習慣。
  • 問題4:教材199頁Example8_16中,聲明的String數組的大小爲42?(一個月只有最多31天)
  • 問題4解決方案:因爲輸出日曆要與星期數相對應,因此會有空格佔位置,一行7個位置對應一週7天,六行是由於,若是一個月的第一天是週六,那麼有幾天的日期會依次順延到第6行,因此聲明的大小爲42。

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

  • 問題1:教材182頁中的Example8_4.java的例子,運行後應該是能夠從鍵盤輸入若干個數的,可是我運行後直接輸出sum=0.0的結果是爲何?

  • 問題1解決方案:這個問題暫時沒有解決,沒有找到緣由。用命令行與IDEA運行結果都是如此。
  • 問題2:教材183-184頁中的Example8_5.java,運行報錯是找不到符號Date

  • 問題2解決方案:教材中的主類的程序中,缺乏import java.util.Date;的語句,致使沒法找到Date。更改以後運行正常。

代碼託管

上週考試錯題總結

  • 第五週課下測試還沒有截止,沒法訂正答案,隨後補上。

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

本週學習內容中第8章的內容,不是特別難理解,重在運用,能夠經過許多經常使用類簡化本身的程序,不用本身設計複雜的算法。經常使用類種類繁多,每一個類都有本身的分工,也體現出Java的「高內聚」,即對象的單一性與內聚性。第15章內容與數據結構有很大的關聯性,也有細微的區別,也是更方便存儲與處理數據的一些方法。java

相關文章
相關標籤/搜索