20165209 2017-2018-2 《Java程序設計》第9周學習總結
阿新 • • 發佈:2018-04-29
ble 發送 main 二周 成長 所有 eth 在線 一個
20165209 2017-2018-2 《Java程序設計》第9周學習總結
教材學習內容總結
URL類
- ULR對象通常包含最基本的三部分信息:協議、地址、資源。
- 構造方法:
public URL(String spec) throws MalformedURLException
- 讀取資源:調用
InputStream openStream()
方法可以返回一個輸入流。
InetAddress 類
- 地址表示:域名、IP地址
- 獲取Internet上主機地址:使用InterAddress類的靜態方法
getByName(String s)
,返回對象含有主機地址的域名和IP地址。 public String getHostName()
public String getHostAddress()
獲取對象所含IP地址。- 獲取本機地址:使用InterAddress類的靜態方法
getLocalHost()
,返回對象含有本地機器的域名和IP地址。
套接字
使用Socket類建立套接字對象並連接在一起(端口號與IP地址的組合得出一個網絡套接字),使兩個程序完成通信。
客戶端套接字:使用
getOutputStream()
獲得輸出流。//建立連接到服務器的套接字對象 try { Socket clientSocket = new Socket("http://192.168.0.78",2010); } //(IP,端口號) catch(IOException e) {}
ServerSocket對象與服務器端套接字
//建立ServerSocket對象 try{ ServerSocket serverForClient = new ServerSocket(2010); }//(端口號) catch(IOException e) {} //使用accept()方法將客戶端和服務器端套接字連接起來 try{ Socket sc = serverForClient.accept(); } catch(IOException e) {}
調用
getInetAddress()
方法,服務器端獲得客戶端的IP地址和域名,客戶端獲得服務器端的IP地址和域名。
UDP數據報
發送數據報
接收數據報
廣播數據報
JAVA遠程調用
- 遠程對象及其代理
- RMI設計細節
1.擴展Remote接口
2.遠程對象
3.存根與代理
4.啟動註冊
5.啟動遠程服務對象
6.運行客戶端程序
教材學習中的問題和解決過程
問題1:為什麽套接字一定要有端口號?
問題1解決方案:端口號為了方便程序間通信,確定要執行的內容。
代碼托管
上周考試錯題總結
- 錯題1:下列說法正確的是 A B D
A . Java語言的一大特性就是內置對多線程的支持。
B . main方法返回時,JVM就會結束Java應用程序。
C . Java應用程序中第一個線程結束後,JVM結束Java應用程序。
D . Java語言使用Thread類及其子類對象來表示線程
解析:C.所有的線程結束後,JVM才結束Java應用程序。
- 錯題2:下列關於線程狀態與生命周期的說法,錯誤的是 B C
A . 在線程沒有結束run()方法之前,不要讓線程再調用start()方法,否則將發生IllegalThreadStateException異常。
B . run()方法負責通知JVM有新的線程等候切換。
C . 執行sleep()結束後,該線程進入運行狀態,得到CPU的使用權。
D . 進入阻塞狀態時,線程不能進入排隊隊列。
解析:
B:應為start()方法。
C:執行sleep結束後,線程重新進到線程隊列中排隊等待CPU資源。- 錯題3:下列關於線程常用的方法的敘述,錯誤的是 C D
A . 讓run方法執行完畢,線程就變成死亡狀態。
B . 如果線程在休眠時被打斷,JVM會拋出InterruptedException異常。
C . 一個已運行的線程沒有進入死亡狀態時,如果再給線程分配實體,則先前的實體會被垃圾收集器收集掉。
D . 當線程進入死亡狀態後,線程就不能夠調用isAlive()方法了。
解析:
C:先前的實體會成為“垃圾”,並且不會被垃圾收集器收集。
D:當線程進入死亡狀態後,線程就還可以調用isAlive()方法,並且返回值為false
其他(感悟、思考等,可選)
由於本章是Java中的網絡編程部分,綜合了線程和窗口的知識,更加具有綜合性。設計的思想更全面,體會到基礎知識的重要,而且課上的測試,課下的實驗也更加有難度。希望能夠堅持學習,並且能夠定期鞏固前面的知識,提高自己的Java編程能力。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 37/37 | 1/1 | 20/20 | |
第二周 | 654/691 | 3/4 | 18/38 | |
第三周 | 477/1131 | 3/7 | 22/60 | |
第四周 | 657/1730 | 2/9 | 30/90 | |
第五周 | 1260/2515 | 1/10 | 30/120 | |
第六周 | 1022/3319 | 2/12 | 20/140 | |
第七周 | 1213/3803 | 1/13 | 20/160 | |
第八周 | 993/4796 | 4/17 | 30/190 | |
第九周 | 1584/5808 | 1/18 | 22/212 |
參考資料
- Java2實用教程(第5版)
20165209 2017-2018-2 《Java程序設計》第9周學習總結