20165226 2017-2018-4 《Java程序設計》第9周學習總結

20165226 2017-2018-4 《Java程序設計》第9周學習總結

教材學習內容總結

第十二章

  • URL類
    • 構造方法1
    try {  URL url = new URL("http://www.google.com");
    }
    catch(MalformedURLException e) {
     System.out.println("Bad URL:"+url);
    }
    • 構造方法2:用public URL(String protocol,String host,String file) throws MalformedURLException
  • InetAddress類獲取地址
    • 獲取InetAddress上主機地址,用靜態方法getByName(String s)
    • 獲取本地機地址,用靜態方法getLocalHost()
  • 套接字
    • ServerSocket對象與服務器端套接字
    • 使用多線程技術
      html

    • 數據報
  • java遠程調用

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

  • 問題1:在學習從書上399頁開始的套接字那章節時,發現了一個問題,內容只介紹了怎樣將客戶端和服務器端的套接字對象鏈接在一塊兒交互信息,但沒有給出套接字的具體定義。
  • 問題1解決方案:在百度上搜索,有以下解釋:
一、源IP地址和目的IP地址以及源端口號和目的端口號的組合稱爲套接字。其用於標識客戶端請求的服務器和服務。
二、套接字,是支持TCP/IP的網絡通訊的基本操做單元,能夠看作是不一樣主機之間的進程進行雙向通訊的端點。

總結:套接字實際上是簡單的說就是通訊的兩方的一種約定,用套接字中的相關函數來完成通訊過程。java

  • 問題2:UDP服務器是怎麼知道客戶端的IP地址和UDP端口?
  • 問題2解決方案:一種是客戶端發消息顯式地告訴服務器IP地址和端口,消息內容就包括IP地址和UDP端口。另一種就是隱式的,服務器從收到的包的頭部中獲得包的源IP地址和端口。

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

  • 問題1:在編譯Example13_1時出現如下錯誤類型
    git

  • 問題1解決方案:經過輸入javac -encoding gbk Example13_1.java,而後成功編譯並運行。
    編程

代碼託管

上週考試錯題總結

  • 易錯點:B項應爲start()方法。C項執行sleep結束後,線程從新進到線程隊列中排隊等待CPU資源。
下列關於線程狀態與生命週期的說法,錯誤的是
A   .   在線程沒有結束run()方法以前,不要讓線程再調用start()方法,不然將發生IllegalThreadStateException異常。
B   .   run()方法負責通知JVM有新的線程等候切換。
C   .   執行sleep()結束後,該線程進入運行狀態,獲得CPU的使用權。
D   .   進入阻塞狀態時,線程不能進入排隊隊列。
正確答案: B C  個人答案: A B
  • 易錯點:該程序只有一個主線程,thread線程並無啓動。
如下代碼中有兩個線程:
public class E { 
  public static void main(String args[]) { 
      Target target =new Target();
      Thread thread =new Thread(target);
      target.run();
      for(int i= 0;i<=10;i++) {
        System.out.println("yes");
        try{  Thread.sleep(1000);
        }
        catch(InterruptedException exp){}
     }
   }
}
class Target implements Runnable{
   public void run() {
      for(int i= 0;i<=10;i++) {
        System.out.println("ok");
        try{
             Thread.sleep(1000);
        }
        catch(InterruptedException exp){}
      }
   }
}
A   .   true
B   .   false
正確答案: B  個人答案: A

結對及互評

  • 博客中值得學習的或問題:
    • 要素全面
    • 很認真細緻
    • 排版簡介美觀
  • 代碼中值得學習的或問題:
    • 代碼中文件分類簡潔
    • 很認真

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20165230
      • 結對學習內容
      • 商討結對編程的相關應用,共同完成實驗三相關內容。

其餘

學習了有關通訊的技巧知識服務器

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 48/48 1/1 20/20
第二週 390/438 2/3 18/38
第三週 866/1304 1/4 18/56
第四周 1105/2409 1/5 30/86
第五週 1229/3196 1/6 20/106
第六週 1147 /4343 2/8 25/131
第七週 1222 / 3668 2/10 20/151
第八週 284 / 3930 3/13 20/171
第九周 1228/4466 2/15 19/190

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。網絡

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法多線程

  • 計劃學習時間:30小時函數

  • 實際學習時間:18小時學習

  • 改進狀況:google

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表
)

參考資料

相關文章
相關標籤/搜索