日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

20145105 《Java程序设计》第5周学习总结

發布時間:2024/10/12 java 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20145105 《Java程序设计》第5周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20145105 《Java程序設計》第5周學習總結

教材學習內容總結

第八章 異常處理

一、語法與繼承架構

(一)使用try、catch

  • 執行流程

  • 嘗試執行try區塊中程序代碼
  • 如果出現錯誤,執行流程跳離錯誤發生點
  • 比較catch區塊中聲明的類型,如果符合被拋出的錯誤對象類型,就執行catch區塊的代碼。
  • 范例Average
    • 運行結果
    范例Average2
    • 運行結果
  • 意義:針對錯誤做一些處理,可以恢復正常流程,進行日志記錄等。

    范例Average3
    • 運行結果

(二)異常繼承架構

  • 錯誤對象都繼承自java.lang.Throwable類,其有兩個子類:java.lang.Error與java.lang.Exception。
  • Error與其子類實例代表嚴重系統錯誤,基本不用處理,最多留下日志信息。
  • Exception與其子類實例代表程序設計本身的錯誤。

    范例Average4
    • 運行結果
  • 子類異常對象應該在父類異常對象前被捕捉,否則子類異常對象的區塊將永遠不會被執行。
  • 多重捕捉中,catch括號中列出的異常不能有繼承關系,否則會發生編譯錯誤。

  • (三)要抓還是要拋

  • throws:自己無法處理,用在方法聲明。
  • throw:方法中跑出Checked Exception,方法聲明中必須有throws。

    范例FileUtil

  • (四)貼心還是造成麻煩

    (五)認識堆棧追蹤

  • 直接調用異常對象的printStackTrace(),是??炊褩W粉櫟淖詈唵畏椒?。

    范例StackTraceDemo
    • 運行結果
  • 使用throw重拋異常時,異常的追蹤堆棧起點,仍是異常的發生根源,不是重拋異常的地方。

    范例StackTraceDemo2

    • 運行結果
  • 使用fillInStackTrace()方法,可以重新裝填異常堆棧,將起點設為重拋異常的地方,并返回Throwable對象。

    范例StackTraceDemo3
    • 運行結果
  • (六)關于assert

    • 使用斷言的時機
  • 如果程序上線后不需要checkGreatThanZero()檢查,可用assert取代。
  • 一定不能有default時,也可用assert來取代。
  • 二、異常與資源管理

    (一)使用finally

    • 利用finally區塊一定會被執行的特點,可以在finally區塊中調用close()方法,避免資源不被關閉。

      范例FinallyDemo
      • 運行結果

    (二)自動嘗試關閉資源

    • JDK7之后,想要嘗試自動關閉的資源,可以撰寫在try之后的括號中。

      范例FileUtile2

    (三)java.lang.AutoCloseable接口

  • JDK7嘗試關閉資源語法可套用的對象,必須操作java.lang.AutoCloseable接口。

    范例AutoClosableDemo
    • 運行結果
  • 同時關閉兩個以上的資源,只需要以分號分隔,越后面的越先關閉。

    范例AutoClosableDemo2
    • 運行結果
  • 第九章 Collection與Map

    一、使用Collection收集對象

    (一)認識Collection架構

    • java.util.Collection:收集對象,如:
    • add():新增對象
    • remove():移除對象
    • java.util.Iterable:逐一取得對象,如:
    • interator():返回操作對象
    • java.util.List:記錄每個對象的索引順序,并可按索引取回對象。
    • java,util.Set:收集對象不重復,且具有集合的行為
    • java.util.queue:收集對象時以隊列的方式,收集的對象加入至尾端,取得對象時從前端
    • java.util.Deque:對Queue兩端進行加入、移除等操作

    (二)具有索引的List

  • ArrayList特性:根據索引隨機存取時速度快,需要調整索引順序時表現較差。

    范例Guest
    • 運行結果
  • LinkedList特性:根據索引隨機存取對象時較慢,但有利于調整索引順序。

    出錯

  • (三)內容不重復的Set

  • Arrays.asList()方法返回List,而List是一種Collection,所以可傳給HashSet接受Collection實例的構造函數。

    范例WordCount
    • 運行結果
  • Java中許多要判斷對象是否重復時,會同時調用hashCode()與equals()。

    出錯

  • (四)支持隊列操作的Queue

  • offer()、poll()、peek()等方法操作失敗會返回固定值。

    范例RequestQueue
    • 運行結果
  • Deque是Queue的子接口,定義了對隊列的操作。

    范例Stack
    • 運行結果
  • (五)使用泛型

    • 使用泛型可以讓程序更簡潔

      范例ArrayList

    (六)簡介Lambda表達式

    • Lambda表達式的語法省略了接口類型與方法名稱,“->”左邊是參數列,右邊是方法本體。

      范例RequesQueue2
      • 運行結果

    (七)Interable和Iterator

    • 增強式for循環可用在數組上,也可用在操作Iterable接口的對象上。

      范例ForEach
      • 運行結果

    (八)Comparable與Comoarator

    • 與順序有關的行為,要么對象本身是Comparable,要么另行指定Comparator對象告知如何排序。
    • 返回值(小于0,等于0或大于0)用來調換排列順序。

    二、鍵值對應的Map

    (一)常用Map操作類

  • 使用HashMap:鍵是無序的
  • 使用TreeMap:鍵是有序的
  • 使用Properties:setProperty()指定字符串類型的鍵值,getProperty()指定字符串類型的鍵。
  • (二)訪問Map鍵值

  • keySet():取得Map中所有鍵
  • Values():取得Map中所有值
  • entrySet():同時取得Map的鍵和值(調用getKey()取得鍵,getValue()取得值)
  • 教材學習中的問題和解決過程

  • 學習8.1.1時,看到try、catch捕捉錯誤的案例,書中只捕捉了一個錯誤,當時疑惑如果有多個錯誤該如何捕捉?
    • 解決:學習到8.1.2時看到書中片段

      try{做一些事...}catch(IOException | InterruptedException | ClassCastException e) {e.printStackTrace();}

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

  • 編寫P253的范例后,始終提示錯誤,檢查了好幾遍就是覺得寫的沒錯,過兩天再查的時候發現try括號中new ResourceSome()缺少了(),ResourceOther other少了other,十分詫異自己當時看了那么多遍,怎么就沒看出來這么大的缺漏。。。

  • 編寫P269范例Students的后,最后的set始終顯示錯誤,后來編寫到Students2時發現該處應該為students。

  • 編寫270范例Students2時出現很多問題。。。尚未解決

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

    聽了老師的話,看了學姐辛苦碼的心得,我也對自己的博客內容和版式做出一些改進,自己還是希望變得優秀,并且也確實在一點一點進步著的。

    學習進度條

    代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
    目標3000行15篇300小時
    第一周70/702/214/14
    第二周150/2201/318/32
    第三周400/6201/435/67
    第四周850/14701/530/97
    第五周560/20301/634/131

    參考資料

    • Java學習筆記(第8版)
    • 《Java學習筆記(第8版)》學習指導
    • ...

    轉載于:https://www.cnblogs.com/schwarizard/p/5350995.html

    總結

    以上是生活随笔為你收集整理的20145105 《Java程序设计》第5周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。