20172330 2017-2018-1 《Java程序設計》第九周學習總結

20172330 2017-2018-1 《程序設計與數據結構》第九周學習總結

教材學習內容總結

本週的學習包括兩章內容,分別爲異常和遞歸。html

異常

  • 錯誤和異常都是對象,表明非正常狀況或者無效處理。
  • 異常拋出時所輸出的信息,提供了方法調用堆棧蹤影。
  • 每個catch子句處理一種try語句塊中拋出的異常。
  • 不管try語句塊正常退出仍是又是拋出異常而退出,都將執行finally子句。
    https://www.ibm.com/developerworks/cn/java/j-lo-finally/index.html
  • 若是在一個機場的發生處沒有捕獲和處理該異常,則該異常將傳遞給上級調用方法。
  • 程序員應該細心地考慮處理異常的時機和位置,不然最好不要作異常處理。
  • 可由Exception類或他的後代類派生一個新類來定義一個新的異常。
  • 流是一個有序的字節序列,它能夠以用做輸入源或做爲輸出目標。

遞歸

  • 遞歸是一種方法可以調用本身的編程技術,掌握遞歸編程的關鍵是能以遞歸的思想考慮問題。
  • 任何一個遞歸定義中必須稱爲基本狀況的非遞歸定義部分,才能使遞歸最終結束。
  • 每一次對方法的遞歸調用,都會建立新的局部變量與參數。
  • 詳細的跟蹤遞歸處理過程,能夠深刻剖析遞歸問題求解問題的方式。
  • 漢諾塔解法具備指數複雜性,效率很是低,可是該接發的實現卻出奇的簡短和精煉。

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

  • 問題1:IO的理解。
  • 問題1解決方案:如書上所說,Java的核心庫java.io提供了全面的IO接口。包括:文件讀寫、標準設備輸出等。Java中IO是以流爲基礎進行輸入輸出的,全部數據被串行化寫入輸出流,或者從輸入流讀入。
    下附Java中IO流的全部類

    IO流還有許多東西須要去慢慢學習,對於不少方面都有歸納的。
  • 《Java中IO總結》java

  • 問題2: 遞歸與迭代的比較
  • 問題2解決方案:對於某些問題,遞歸是最精煉和適當的解法,但對於其餘的問題,遞歸則不如迭代解法直觀。
    遞歸中必定有迭代,可是迭代中不必定有遞歸,大部分能夠相互轉換.能用迭代的不用遞歸,遞歸調用函數,浪費空間,而且遞歸太深容易形成堆棧的溢出.
//這是遞歸  
int funcA(int n)  
{  
    if(n > 1)  
       return n+funcA(n-1);  
    else   
       return 1;  
}  
//這是迭代  
int funcB(int n)  
{  
    int i,s=0;  
    for(i=1;i<n;i++)  
       s+=i;  
    return s;  
}

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

  • 問題1:在作pp11.1的時候,不管我輸入多長的字符串他都顯示超過
  • 問題1解決方案:當時反覆檢查代碼以爲並無問題啊,而後使用了代碼調試一步步進行下去發現因爲在if語句後加了一個;,致使throw語句一直可以進行,因此纔會一直出現顯示超出的提示。

代碼託管

上週考試錯題總結

  • 問題1:We compare sorting algorithms by examining
    A the number of instructions executed by the sorting algorithm
    B the number of instructions in the algorithm itself (its length)
    C the types of loops used in the sorting algorithm
    D the amount of memory space required by the algorithm
    E whether the resulting array is completely sorted or only partially sorted
    分析:這道題考到的知識點爲:不一樣的排序算法在執行時須要不一樣數量的指令。因此咱們經過檢查排序算法執行的指令數,來比較排序算法。因此應該選a。git

  • 問題2:Polymorphism is achieved by
    A . overloading(重載)
    B . overriding(重寫)
    C . embedding(嵌入)
    D . abstraction(抽象)
    E . encapsulation(封裝)
    分析:這道題考查的是多態性是經過什麼實現,我選擇的是的抽象,而答案是b重寫:重寫提供了多態性,由於適當的方法是根據當前被引用的對象而調用的,因此應該是重寫實現多態性。程序員

    結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • 嚴域俊同窗在進行異常和錯誤的區別時進行了詳細的描述並配了圖
    • 同時在根據本身代碼中出現的問題又一次進行了查詢和解答。
  • 代碼中值得學習的或問題:
    • 這周我兩就四則運算的最後結合部分進行了修改,但仍是存在不少問題,我兩也在不斷地學習與探索過程當中學到了不少,也但願可以按時完成四則運算吧。
    • commit依舊很詳細,有條理性。

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172333
    • 結對學習內容
      • 學習第十一和十二章pp項目。
      • 學習異常和遞歸的具體內容
      • 對於IO操做的共同探討
      • 繼續完善四則運算的的項目。

其餘(感悟、思考等,可選)

這一週在作課後項目時問題不大,可是在作是四則運算的編寫時遇到了不少問題,須要繼續努力研究。算法

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 180/180 2/2 20/25
第二週 312/414 2/4 20/45
第三週 557/971 1/5 25/70
第四周 1217/2242 2/7 44/114
第五週 734/2976 1/8 24/138
第六週 523/3509 1/9 20/158
第七週 697/4206 1/10 24/182
第八週 1118/5324 3/13 30/212
第九周 656/5980 2/15 20/232

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

  • 計劃學習時間:20小時數據結構

  • 實際學習時間:20小時函數

  • 改進狀況:oop

這周對於課後練習作的沒有那麼吃力,但仍是存在一些對於類的編寫的問題,但願繼續加油。學習

參考資料

相關文章
相關標籤/搜索