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:XXXXXX
-
問題1解決方案:st是String類型,System.in.read()讀取一個字節,然后轉換成一個int型的數,給返回,想用st去接,但是因為類型不一致,所以使用這個(String) ,是不可以的,強制類型轉換得能轉才行,基本數據類型和基本數據類型之間轉換,引用數據類型和引用數據類型之間轉換,可以,但是引用類型和基本類型之間就不行了,引用類型是類,是對象。
-
問題2:
-
問題2解決方案:
看到前面的程序發現,我將Tortoise錯誤的定義為了private,將其改為public即可。
代碼托管
上周考試錯題總結
1.假設有自定義異常類ServiceException,那么拋出該異常的語句正確的是(B)
A .
raise ServiceException
B .
throw new ServiceException()
C .
throw ServiceException
D .
throws
2.下列哪些項是泛型的優點? (A,C)
A .
不用向下強制類型轉換
B .代碼容易編寫
C .類型安全D .運行速度快
3.關於try...catch...finally結構,描述正確的是哪些?(A,C)
A .
可以有多個catch
B .
只能有一個catch
C .
可以沒有catch
D .
finally必須有
結對及互評
評分標准
-
正確使用Markdown語法(加1分):
- 不使用Markdown不加分
- 有語法錯誤的不加分(鏈接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
-
模板中的要素齊全(加1分)
- 缺少“教材學習中的問題和解決過程”的不加分
- 缺少“代碼調試中的問題和解決過程”的不加分
- 代碼托管不能打開的不加分
- 缺少“結對及互評”的不能打開的不加分
- 缺少“上周考試錯題總結”的不能加分
- 缺少“進度條”的不能加分
- 缺少“參考資料”的不能加分
-
教材學習中的問題和解決過程, 一個問題加1分
-
代碼調試中的問題和解決過程, 一個問題加1分
-
本周有效代碼超過300分行的(加2分)
- 一周提交次數少於20次的不加分
-
其他加分:
- 周五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進情況的加1分
- 有動手寫新代碼的加1分
- 課后選擇題有驗證的加1分
- 代碼Commit Message規范的加1分
- 錯題學習深入的加1分
- 點評認真,能指出博客和代碼中的問題的加1分
- 結對學習情況真實可信的加1分
-
扣分:
- 有抄襲的扣至0分
- 代碼作弊的扣至0分
- 遲交作業的扣至0分
點評模板:
-
博客中值得學習的或問題:
- xxx
- xxx
- ...
-
代碼中值得學習的或問題:
- xxx
- xxx
- ...
-
基於評分標准,我給本博客打分:XX分。得分情況如下:xxx
點評過的同學博客和代碼
- 本周結對學習情況
- 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 |
-
計划學習時間:12小時
-
實際學習時間:13小時
-
改進情況:學習時更加的專心,所以時間把握的更准確。
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)