20175212童皓楨 《Java程序設計》第11周學習總結
20175212童皓楨 《Java程序設計》第11周學習總結
教材學習內容總結
一、URL類
1.一個URL對象通常包含最基本的三部分信息:協議、地址、資源
2.構造方法:
public URL(String spec) throws MalformedURLException
public URL(String protocol, String host,String file) throws MalformedURLException
3.URL對象調用
InputStream openStream()
方法可以返回一個輸入流,該輸入流指向URL對象所包含的資源。通過該輸入流可以將服務器上的資源讀入到客戶端
二、 InetAdress類
1.獲取Internet上主機的地址
使用InetAddress
類的靜態方法getByName(String s);
獲得一個InetAddress
對象,該對象含有主機地址的域名和IP地址。
2.獲取本地機的地址
使用InetAddress
類的靜態方法getLocalHost()
獲得一個InetAddress
對象,該對象含有本地機的域名和IP地址。
三、 套接字
當兩個程序需要通信時,它們可以通過使用Socket類建立套接字對象並連接在一起(端口號與IP地址的組合得出一個網絡套接字。
1.客戶端套接字
建立連接到服務器的套接字對象:
try{ Socket mysocket=new Socket(“http://192.168.0.78”,1880); } catch(IOException e) { }
與mysocket
相關的方法
getInputStream()
獲得一個輸入流getOutputStream()
獲得一個輸出流- 用
getInputStream()
得到的輸入流接到另一個DataInputStream
數據流上 - 用
getOutputStream()
得到的輸出流接到另一個DataOutputStream
數據流上
- ServerSocket對象與服務器端套接字
建立ServerSocket
對象:
try{ ServerSocket serverForClient =new ServerSocket(2010); } catch(IOException e){}
使用方法accept()
將客戶的套接字和服務器端的套接字連接起來,代碼如下所示:
try{ Socket sc= serverForClient .accept();
}
catch(IOException e){}
四、 UDF數據報
基於UDP通信的基本模式是:
1.將數據打包,稱為數據包(好比將信件裝入信封一樣),然後將數據包發往目的地。
2.接受別人發來的數據包(好比接收信封一樣),然後查看數據包中的內容。
發送數據包:
用DatagramPacket
類將數據打包,即用DatagramPacket
類創建一個對象,稱為數據包。用DatagramPacket
的以下兩個構造方法創建待發送的數據包:
DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
用DatagramSocket
類的不帶參數的構造方法:DatagramSocket()
創建一個對象,該對象負責發送數據包。例如:
DatagramSocket mail_out=new DatagramSocket();
mail_out.send(data_pack);
接受數據包
首先用DatagramSocket
的另一個構造方法DatagramSocket(int port)
創建一個對象,其中的參數必須和待接收的數據包的端口號相同。例如,如果發送方發送的數據包的端口是5666,那麽如下創建DatagramSocket對象:
DatagramSocket mail_in=new DatagramSocket(5666);
然後對象mail_in
使用方法receive(DatagramPacket pack)
接受數據包。
用 DatagramPack
類的另外一個構造方法: DatagramPack(byte data[],int length)
創建一個數據包,用於接收數據包,例如:
byte data[]=new byte[100];
int length=90;
DatagramPacket pack=new DatagramPacket(data,length);
mail_in.receive(pack);
該數據包pack將接收長度是length字節的數據放入data
教材學習中的問題和解決過程
問題1:運行Java遠程調用的例子時,提示找不到RemoteSubject類
問題1解決方案:根據IDEA提示,將ClientApplication類也放入sever包中即可正常運行。
代碼托管
倉庫又被我搞炸了。。
結對及互評
評分標準
- 正確使用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
參考示例
點評過的同學博客和代碼
- 本周結對學習情況
- 結對同學學號1
- 結對照片
- 結對學習內容
- XXXX
- XXXX
- ...
上周博客互評情況(只要鏈接,具體點評放相應博客下)
- 學號1
- 學號2
- 學號3
- 學號4
- ...
其他(感悟、思考等,可選)
xxx
xxx
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 6/6 | 1/1 | 20/20 | |
第二周 | 245/251 | 1/2 | 18/38 | |
第三周 | 633/884 | 1/3 | 22/60 | |
第四周 | 305/1189 | 1/4 | 30/90 | |
第五周 | 410/1599 | 3/7 | 30/120 | |
第六周 | 1135/2734 | 3/10 | 30/150 | |
第七周 | 781/3515 | 3/13 | 30/180 | |
第八周 | 710/4225 | 3/16 | 30/210 | |
第九周 | 775/5000 | 2/18 | 30/240 | |
第十周 | 933/5933 | 1/19 | 30/270 | |
第十一周 | 691/6624 | 2/21 | 30/300 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法
計劃學習時間:XX小時
實際學習時間:XX小時
改進情況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)
參考資料
Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
...
20175212童皓楨 《Java程序設計》第11周學習總結