20155218 2016-2017-2 《Java程序設計》第6周學習總結
教材學習內容總結
- Java將輸入/輸出抽象化爲串流,數據有來源及目的地,銜接二者的是串流對象。
- dump()方法並無限定來源或目的地的真實形式,而是依賴於抽象的InputStream、OutputStream。
- InputStream、OutStream提供串流基本操做,若是想要爲輸入/輸出的數據作加工處理,則可使用打包器類。經常使用的打包器具有緩衝區做用的BufferedOutputStream、BufferedInputStream,具有數據轉換處理的DataInputStream、DataOutputStream,具有對象串行化能力的ObjectInputStream、ObjectOutputStream等。
- 在java中,從main()開始的流程會由主線程執行,能夠建立Thread實例來執行Runnable實例定義的run()方法。
- 撰寫多線程程序的方式:
1.將流程定義在Runnable的run()方法中
- 2.繼承Thread類,從新定義run()方法
- wait()、notify()、notifyAll()是Object定義的方法,能夠經過這3個方法控制線程釋放對象的鎖定,或者通知線程參與鎖定競爭。
- CopyOnWriteArrayList操做了List接口,這個類的實例在寫入操做是,內部會創建新數組,並複製原有數組索引的參考,而後在新數組上進行寫入操做,寫入完成後,再將內部原參考舊數組的變量參考至新數組。
教材學習中的問題和解決過程
- 問題1:什麼是IO
- 問題1解決方案: Java中I/O操做主要是指使用Java進行輸入,輸出操做. Java全部的I/O機制都是基於數據流進行輸入輸出,這些數據流表示了字符或者字節數據的流動序列。Java的I/O流提供了讀寫數據的標準方法。任何Java中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。
- 問題2:File的做用
- 問題2解決方案:在Java語言的java.io包中,由File類提供了描述文件和目錄的操做與管理方法。但File類不是InputStream、OutputStream或Reader、Writer的子類,由於它不負責數據的輸入輸出,而專門用來管理磁盤文件與目錄。做用:File類主要用於命名文件、查詢文件屬性和處理文件目錄。
- 問題3:什麼是併發
- 問題3解決方案:在操做系統中,是指一個時間段中有幾個程序都處於已啓動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行,但任一個時刻點上只有一個程序在處理機上運行。這裏須要注意併發和並行是不一樣的兩個概念。併發是指一個時間段內同時運行,這是個區間;而並行是指在同一個時間點上運行,這個是一個點。並且併發在同一個時間點上只能是一個程序在運行。
- 問題4:進程和線程之間有什麼不一樣?
- 問題4解決方案:一個進程是一個獨立(self contained)的運行環境,它能夠被看做一個程序或者一個應用。而線程是在進程中執行的一個任務。Java運行環境是一個包含了不一樣的類和程序的單一進程。線程能夠被稱爲輕量級進程。線程須要較少的資源來建立和駐留在進程中,而且能夠共享進程中的資源。
代碼調試中的問題和解決過程

上週考試錯題總結
1.假設有自定義異常類ServiceException,那麼拋出該異常的語句正確的是(B)
A .
raise ServiceException
B .
throw new ServiceException()
C .
throw ServiceException
D .
throws
2.下列哪些項是泛型的優勢? (A,C)
A .
不用向下強制類型轉換
B .代碼容易編寫
C .類型安全D .運行速度快git
3.關於try...catch...finally結構,描述正確的是哪些?(A,C)web
A .
能夠有多個catch數組
B .
只能有一個catch安全
C .
能夠沒有catch數據結構
D .
finally必須有多線程
結對及互評
評分標準
- 正確使用Markdown語法(加1分):
- 不使用Markdown不加分
- 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
- 模板中的要素齊全(加1分)
- 缺乏「教材學習中的問題和解決過程」的不加分
- 缺乏「代碼調試中的問題和解決過程」的不加分
- 代碼託管不能打開的不加分
- 缺乏「結對及互評」的不能打開的不加分
- 缺乏「上週考試錯題總結」的不能加分
- 缺乏「進度條」的不能加分
- 缺乏「參考資料」的不能加分
教材學習中的問題和解決過程, 一個問題加1分併發
代碼調試中的問題和解決過程, 一個問題加1分
- 本週有效代碼超過300分行的(加2分)
- 其餘加分:
- 週五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進狀況的加1分
- 有動手寫新代碼的加1分
- 課後選擇題有驗證的加1分
- 代碼Commit Message規範的加1分
- 錯題學習深刻的加1分
- 點評認真,能指出博客和代碼中的問題的加1分
- 結對學習狀況真實可信的加1分
- 扣分:
- 有抄襲的扣至0分
- 代碼做弊的扣至0分
- 遲交做業的扣至0分
點評模板:
點評過的同窗博客和代碼
- 本週結對學習狀況
- 20155205
- 結對照片
- 結對學習內容
-複習上週所學的內容
- 經過學習視頻來學習第10,11章的內容,發現有人講解真的不同,輕鬆了不少。
- ...
- 上週博客互評狀況
其餘(感悟、思考等,可選)
感受學習的內容愈來愈難了,java佔用我大量的課外時間,這周我由於寫了一個數據結構的綜合實驗,花了很多時間,因此這周學習有點吃力,但有了視頻,學習會容易一點。
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
15/15 |
1/4 |
12/12 |
|
第二週 |
140/155 |
1/5 |
18/30 |
|
第三週 |
677/817 |
1/ 6 |
20/50 |
|
第四周 |
583/1400 |
1/7 |
20/70 |
|
第五週 |
540/1940 |
1/8 |
22/92 |
|
第六週 |
362/2302 |
1/9 |
13/105 |
|
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)
參考資料