20145331 《Java程式設計》第6周學習總結

來源:互聯網
上載者:User

標籤:

         
20145331 《Java程式設計》第6周學習總結教材學習內容總結第十章 輸入/輸出10.1.1串流

•Java將輸入/輸出抽象化為串流,資料有來源及目的地,銜接兩者的是串流對象。

•若要將資料從來源取出,可以使用輸入串流;如果要將資料寫入目的地,可以使用輸出串流。輸入串流代表對象為java.in.InputStream執行個體,輸出串流代表對象為java.io.Outputstream執行個體

•每次從Inputstream讀入的資料,都會先置入byte資料,它的read()方法會嘗試讀入btye的資料,並返回讀入的位元組。

•在不使用InputStream與OutputStream時,必須使用close()方法關閉串流。由於InputStream與OutputStrem操作了java.io.Closeable介面,其父介面為java.lang.AutoCloseable介面,因此可使用JDK7嘗試自動關閉資源文法。

10.1.2串流繼承架構

•System的setIn方法指定標準輸入來源,setOut指定輸出目的地,標準輸出可以導向至文檔,只要在執行程式時使用>將輸出導向至指定文檔就行

•FileInputStream是InputStream的子類,主要操作InputStream的read()抽象方法;FIleOutputStream是OutputStream的子類,主要操作其write()的操作方法。

10.1.3串流處理裝飾器

•裝飾器只是對資料進行了一些加工處理,例如緩衝、序列化、資料裝換等

•BufferedInputStream與BufferedOutputStream主要在內部提供緩衝區功能。

10.2字元處理類

•Reader抽象類別:用於讀取字元流的抽象類別。子類必須實現的方法只有 read(char[], int, int) 和 close()。但是,多數子類將重寫此處定義的一些方法,以提供更高的效率或其他功能。

•Writer抽象類別:寫入字元流的抽象類別。子類必須實現的方法僅有 write(char[], int, int)、flush() 和 close()。但是,多數子類將重寫此處定義的一些方法,以提供更高的效率或其他功能。

•FileReader、FileWriter可以對文檔作讀取或寫入。

第十一章 線程與並行API11.1線程

•單線程程式:啟動的程式從main()程式進入點開始至結束只有一個流程。

•多線程程式:一個程式擁有多個流程。

•撰寫多線程程式的方式:操作Runnable介面,在run()中定義額外流程;繼承Thread類,在run()中定義額外流程

•操作Runnable介面的好處就是較有彈性,類還有機會繼承其他類;若繼承了Thread類,那該類就是一種Thread,通常是為了直接利用Thread中定義的一些方法,才會繼承Thread來操作。

•基本狀態圖:start——>runnable——>(blocked)——>running——>dead

•如果要停止線程,最好自行操作,讓程式走完應有流程,而不是調用syop()方法

•線程存取同一對象相同資源時可能會引發競速情況(Race Condition)

•wait()、notify()、notifyAll() 是 Object 定義的方法,可以通過這三個方法控制線程釋放對象的鎖定,或者通知線程參與鎖定競爭

11.2並行API

•在使用進階並行API時,Lock介面的操作對象可實現synchronized的功能。

•在使用進階並行API時,Condition介面的操作對象可實現Object的wait()、notify()、notifyAll()功能。

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

Inputstream類中的常用方法:  

    public abstract int read( )    public int read(byte b[ ])    public int read(byte b[ ], int off, int len)    public int available( )    public long skip(long n)    public int close( ) 

OutputStream類中的常用方法:  

    public void write(byte b[ ])       public void write(byte b[ ], int off, int len)    public abstract void write(int b)     public void flush( )      public void close( ) 
本周代碼託管其他(感悟、思考等,可選)

知識越來越多,難度也越來越大了,感覺前面的內容我忘記了好多,今後在學習的過程中,要注意複習前面的內容,做到溫故而知新。

剛開始學習的時候學習的重點都放在文法和技巧上,不太注意API的學習,這讓我在這兩周的學習中吃到了苦頭,API是JAVA的重要部分,在今後的學習中不可再抱有僥倖心理,踏踏實實地去學習每一個知識點,才會有質的提高。

學習進度條

 

  程式碼數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 3500行 20篇 300小時  
第一周 150/150 1/1 14/14  
第二周 150/300 1/2 14/28  
第三周 100/400 1/3 14/42  
第四周 200/600 1/4 14/56  
第五周 317/917 1/5 14/70  
第六周 355/1272 2/7 16/86
參考資料
  • Java學習筆記(第8版)
  • 《Java學習筆記(第8版)》學習指導

20145331 《Java程式設計》第6周學習總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.