1. 程式人生 > >《Java程序設計》第5周學習總結

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

博客 oid 進度 .html mat rand object header file

20189208 2018-2019-2 《Java程序設計》第5周學習總結

教材學習內容總結

十六章 輸入/輸出
學習了針對小文件的java.nio.io.file.Files和大文件的四種流和隨機操作java.io.RandomAccessFile.
十九章 線程
多線程可以使用1拓展java.lang.thread類 2實現java.lang.Runnable接口。
二十章 並發工具
學習java.util.currency包中的並發工具,原子變量操作的類,盡量使用Executor接口實現。Callable和Future,類。以及鎖住共享資源。
二十二章 網絡
HTTP協議、java.net.URL、java.net.URLConnetion、java.net.SeverSocket、java.net.Socket、webSever的三個類,

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

  • 問題1:TCP/IP的網絡通信的實現
  • 問題1解決方案:
    發送:創建Socket實例-getOutputStream方法獲取java.io.OutputStream對象,發送和接受字節流,
  • 問題2:XXXXXX
  • 問題2解決方案:XXXXXX
  • ...

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

  • 問題1:後綴表達式無法計算
  • 問題1解決方案:轉化為後綴表達式時,數字與數字之間缺少空格。
  • 問題2:Client端收不到結果
//獲取服務器端傳遞的數據
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String info= br.readLine();//總是bug無法輸出info,info的值是java.io.BufferedReader
  • 問題2解決方案:我猜是info的賦值過程出了問題,翻書換了表達方式,並且把br.readLine()改為br.read()或br.toString()。nfo就可以輸出java.io.BufferedReader這個錯誤數值了。info和Server端的變量是相同的名字,我猜可能混淆了,就改了名字為 i.終於成了。
//獲取服務器端傳遞的數據
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String i = br.readLine();

代碼托管

技術分享圖片

···
//==========Today=====================================

code summary infomation:
232
documents summary infomation:
0
//==========This Week=================================
code summary infomation:
753
documents summary infomation:
0
ac1710c - ssrchan,2019-03-27 20:01:02 +0800: add package ServerClient
e34c5b0 - ssrchan,2019-03-27 15:45:48 +0800: add MyBC MyDC
//==========All=================================
code summary infomation:
1745
documents summary infomation:
107
commit history:
ac1710c - ssrchan,2019-03-27 20:01:02 +0800: add package ServerClient
e34c5b0 - ssrchan,2019-03-27 15:45:48 +0800: add MyBC MyDC
c100c7a - ssrchan,2019-03-20 16:52:36 +0800: add box p sub
40d4bde - ssrchan,2019-03-20 15:00:36 +0800: Merge remote-tracking branch ‘origin/master‘
···

上周考試錯題總結

  • 錯題1現有:
1. import java.util.*;
2.
3. Class FindStuff {
4.public static void main (String[]args) {
5, //insert code here
6. c.put ("X", 123);
7. }
8. }

分別插入到第5行,哪幾行允許代碼編譯?

A.
Map c= new SortedMap();

B.
HashMap c= new HashMap();

C.
HashMap c= new Hashtable();

D.
SortedMap c= new TreeMap();

E.
ArrayList c= new ArrayList();

F.
Map c = new LinkedHashMap();

正確答案: B D F

  • 錯題2

現有:

  • list是一個合法的集合引用
  • getCollection()返回一個合法集合的引用
    哪個是合法的?

A.
or(Object o ; list)

B.
for(Object o : getCollection())

C.
for(Object o : list.iterator())

D.
for(lterator i ; list.iterator() ; i.hasNext () )

E.
for(lterator i=list.iterator(); i.hasNext (); )

正確答案: B E

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 ----- ----- -----
第二周 180/180 2/3 18/18
第三周 429/609 1/4 24/42
第四周 588/1197 2/6 30/72
第五周 548/1745 2/6 20/92

參考資料

  • Java學習筆記(第8版)
  • 《Java學習筆記(第8版)》學習指導
  • [Java技術手冊(第六版)] (https://book.douban.com/subject/26674131/)

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