天天看點

第六周學習總結

20175205 2018-2019-2 《Java程式設計》第六周學習總結

教材學習内容總結

第六周學習總結
第六周學習總結

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

Q:不知道怎麼在IDEA上開啟斷言

A:

Run

- >

Edit Configurations

->

VM options

輸入

-ea

第六周學習總結
第六周學習總結
第六周學習總結

Q:教材第十章例子四,有關String類的方法String(a,0,n)不太懂

A:a是把一個位元組數組a從0取到n,取出來之後轉換成String類型

Q:教材第十章例子五,getBytes()方法沒有接觸過

A:String的getBytes()方法是得到一個作業系統預設的編碼格式的位元組數組。這個表示在不同情況下,傳回的東西不一樣。存儲字元資料時,會先進行查表,然後将查詢的結果寫入裝置,讀取時也是先查表,把查到的内容列印到顯示裝置上,getBytes()是使用預設的字元集進行轉換,getBytes(“utf-8”)是使用UTF-8編碼表進行轉換。

Q:教材例子六為什麼隻關閉了輸出流而沒有關閉輸入流

A: 。。。還沒有得到解答

Q:在使用Scanner解析檔案時,使用正規表達式作為分隔符,如何寫出正規表達式

"[^0123456789.]+"

[^abc]

比對除了abc以外的任意字元

+

(懶惰) 重複一次或更多次,例如"aaaaaaaa" 比對字元串中所有的a 正則: "a+" 會取到字元中所有的a字元, "a+"與"a"不同在于"+"至少是一次而"" 可以是0次,

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

Q:在IDEA中運作結果所顯示的位元組數和書上的不同

第六周學習總結

A:不同的編碼格式占位元組數是不同的,UTF-8編碼下一個中文占3位元組。

Q:在字元輸入,輸出流遇到一段代碼,不知道flush的作用

out.flush();
out.close();
           

A:flush()這個函數是清空的意思,用于清空緩沖區的資料流,進行流的操作時,資料先被讀到記憶體中,然後再用資料寫到檔案中,那麼當你資料讀完時,我們如果這時調用close()方法關閉讀寫流,這時就可能造成資料丢失,因為,讀入資料完成時不代表寫入資料完成,一部分資料可能會留在緩存區中。

代碼托管

第六周學習總結
第六周學習總結

總結

這兩章讓我學的頭大,新的類和方法十分多,學完之後方法有些混淆,是以我對所學過的内容做了一個總結。

  • 所有輸入流類都是抽象類InputStream(位元組輸入流),或者抽象類Reader(字元輸入流)的子類;

    而所有輸出流都是抽象類OutputStream(位元組輸出流)或者Writer(字元輸出流)的子類。

    • 位元組輸入流
      第六周學習總結
    • 位元組輸出流
      第六周學習總結
    • 字元輸入流
      第六周學習總結
    • 字元輸出流
      第六周學習總結
  • 具體用法
    • 位元組輸入輸出流
      第六周學習總結
      第六周學習總結
    • 字元輸入輸出流
      第六周學習總結

參考資料

  • 在IDEA中開啟斷言語句的方式
  • 關于java中輸出流flush()方法
  • java輸入輸出流(I/O)總結
  • 深入了解正規表達式