20155315 2016-2017-2 《Java程序設計》第十週學習總結

學習目標

  • 瞭解計算機網絡基礎
  • 掌握Java Socket編程
  • 理解混合密碼系統
  • 掌握Java 密碼技術相關API的使用

學習資源

教材學習內容總結

1.計算機網絡基礎

  • 在計算機網絡中,如今命名IP地址的規定是IPv4協議,該協議規定每一個IP地址由4個0-255之間的數字組成,例如10.0.120.34。每一個計算機在聯網之後都擁有一個惟一的合法IP地址。
  • 一個IP地址能夠對應多個域名,一個域名只能對應一個IP地址。
  • 有了IP地址和端口的概念之後,在進行網絡通信交換時,就能夠經過IP地址查找到該臺計算機,而後經過端口標識這臺計算機上的一個惟一的程序。這樣就能夠進行網絡數據的交換了。

2.Java Socket編程

  • 搭建服務器端
    • 建立ServerSocket對象綁定監聽端口
    • 經過accept()方法監聽客戶端的請求。
    • 創建鏈接後,經過輸入輸出流讀取客戶端發送的請求信息。
    • 經過輸出流向客戶端發送請求信息。
    • 關閉相關資源。
  • 搭建客戶器端
    • 建立Socket對象,指明須要鏈接的服務器的地址和端口。
    • 創建鏈接後,經過輸出流向服務器發送請求信息。
    • 經過輸入流獲取服務器的響應信息。
    • 關閉響應資源

3.混合密碼系統

將對稱密碼和公鑰密碼結合起來的密碼方式稱爲混合密碼系統。html

  • 對稱密碼(symmetric cryptography)是指在加密和解密時使用同一密鑰的方式。
  • 公鑰密碼(public-key cryptography)則是指在加密和解密時使用不一樣密鑰的方式,公鑰密碼又稱爲非對稱密碼(asymmetric cryptography)。

4.Java 密碼技術相關API

Java Security API提供了可互操做的算法和安全服務的實現。服務以provider的形式實現,能夠以插件的形式植入應用程序中。程序員能夠透明地使用這些服務,如此使得程序員能夠集中精力在如何把安全組件集成到本身的應用程序中,而不是去實現這些安全功能。此外,除了Java提供的安全服務外,用戶能夠編寫自定義的security provider,按需擴展Java的security平臺。java

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

  • 問題1:掌握Java Socket編程與Java傳統變成有什麼區別?
  • 解決1:
    • Java Socket 可實現客戶端--服務器間的雙向實時通訊。
    • 傳統的編程通常只有服務器到客戶端的單向通訊。- Java Socket編程更適合現代的通信須要,使用Socket能實現客戶端的反饋與服務器的隨時更新。**

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

課堂上老師讓咱們用遞歸的方式比較數組中的數。以前使用遞歸函數定義的是單個變量,但老師要求的定義是數組。一開始,老是不知道怎麼敲代碼,編譯了好幾回都有錯。也嘗試過用一個新的變量代替數組中沒一個數,但效果仍是很差。最後依舊將形參定義爲單個數組才完成要求。
其餘的關於密碼學的代碼按照教程運行,沒有明顯的問題。git

代碼託管

  • 用statistics腳本查看代碼行數
    程序員

  • 代碼提交結果
    算法

上週考試錯題總結

本週考試的內容是第二次實驗和數據庫創建,暫時沒有答案,還要繼續學習數據庫的知識。數據庫

結對及互評

評分標準(滿分10分)

  1. 從0分加到10分爲止
  2. 正確使用Markdown語法(加1分):
    • 不使用Markdown不加分
    • 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
    • 排版混亂的不加分
  3. 模板中的要素齊全(加1分)
    • 缺乏「教材學習中的問題和解決過程」的不加分
    • 缺乏「代碼調試中的問題和解決過程」的不加分
    • 代碼託管不能打開的不加分
    • 缺乏「結對及互評」的不能打開的不加分
    • 缺乏「上週考試錯題總結」的不能加分
    • 缺乏「進度條」的不能加分
    • 缺乏「參考資料」的不能加分
  4. 教材學習中的問題和解決過程, 一個問題加1分數組

  5. 代碼調試中的問題和解決過程, 一個問題加1分安全

  6. 本週有效代碼超過300分行的(加2分)
  • 一週提交次數少於20次的不加分

6 其餘加分:

  • 週五前發博客的加1分
    - 感想,體會不假大空的加1分
    - 排版精美的加一分
    - 進度條中記錄學習時間與改進狀況的加1分
    - 有動手寫新代碼的加1分
    - 課後選擇題有驗證的加1分
    - 代碼Commit Message規範的加1分
    - 錯題學習深刻的加1分
    - 點評認真,能指出博客和代碼中的問題的加1分
    - 結對學習狀況真實可信的加1分
    7 扣分:
    - 有抄襲的扣至0分
    - 代碼做弊的扣至0分

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx

  • 參考示例

    點評過的同窗博客和代碼

  • 20155304

  • 20155301
  • 20155219
  • 20155220
  • 20155336

體會

本週學習Java以及計算機網絡基礎和密碼學的相關知識。這周的學習讓我充分了解到學科融合的重要性。學習歷來不僅是一個學科的事,還要作到學以至用。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 20/20 1/1 10/10 安裝了JDK、IDEA和Git,寫了第一個Java程序
第二週 97/117 2/3 20/30 用Linux上傳代碼,熟悉修改文件的命令行
第三週 336/453 2/4 35/65 在Linux上安裝JDK和IDEA,更熟悉vi的操做指令以及修改時須要注意的地方。
第四周 851/1304 1/5 25/90 學習用JDB調試程序
第五週 834/2138 1/7 32/122 能本身設計簡單的程序,遇到問題也基本上能經過前面的學習和查資料解決,還有問題沒有獲得解決。
第六週 573/2711 1/8 15/137 理解課本中的內容並本身把以前的代碼加以改正,更理解程序的做用,繼續學習用JDB調試程序
第七週 400/3111 2/10 20/157 用IDEA編輯並調試程序,設置斷點,完成了實驗一
第八週 403/3511 1/11 20/177 熟悉通用API,深刻學習代碼並測試代碼
第九周 1500/5011 2/13 20/217 瞭解了JDBC,章、第十七章和第十八章的內容,並檢查之前的代碼。共同窗習實驗二的內容,學習使用StarUML,用單元測試測試代碼
第10周 1627/6638 1/14 20/237 使用遞歸和數組的方式使用命令行參數,學習Java以及計算機網絡基礎和密碼學的相關知識
  • 計劃學習時間:25小時
  • 實際學習時間:20小時

參考資料

相關文章
相關標籤/搜索