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

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

教材學習內容總結

第十二章 Lambda

  • 若是使用JDK8的話,能夠使用Lambda特性去除重複的信息。
  • 在只有Lambda表達式的狀況下,參數的類型必須寫出來,若是有目標類型的話,在編譯程序可推斷出類型的狀況下,就能夠不寫出Lambda表達式的參數類型。
  • Lambda表達式中this的參考對象以及toString()的接受者,是來自Lambda的周圍環境,也就是看Lambda表達式是在哪一個名稱範疇,就能參考該範疇內的名稱,像是變量或方法。
  • Lambda表達式只是定義函數接口操做的一種方式,除此以外,只要靜態方法的方法簽署中,參數與返回值定義相同,也能夠使用靜態方法來定義函數接口操做。
  • Lambda表達式:Comparator<String> byLength = (name1, name2) -> name1.length() - name2.length(); Comparator<String> byLength = StringOther::bylength;
  • 第十三章 時間與日期

13.1 認識時間與日期html

13.1.1 時間的度量java

- 格林威治標準時間(GMT):經過觀察太陽而得,然而地球公轉軌道爲橢圓形且速度不一,自己自轉亦緩慢減速中,於是會形成愈來愈大的時間差,已不做爲標準時間使用。
- 世界時:在1972年引入UTC以前,GMT與UT是相同的
國際原子時(TAI),秒的單位定義是基於TAI,也就是銫原子輻射振動次數。
- 世界協調時間(UTC),UTC考慮了地球自轉愈來愈慢而有閏秒修正,確保UTC與UT相差不會超過0.9秒。
- 就目前來講,即便標註爲GMT(不管是文件說明,或者是API的日期時間字符串描述),實際上談到時間指的是UTC時間。

13.1.2 年曆簡介git

- 儒略曆:修正了羅馬歷隔三年設置一閏年的錯誤,改採四年一閏。
- 格里高利曆:改革了儒略曆。
- ISO 8601標準:採用統一的數據格式。

13.1.3 認識時區api

每一個地區的標準時間各不相同,涉及到地理、法律、經濟、社會、政治等問題。
爲了讓人們對時間的認知符合做息,於是設置了UTC偏移。

13.2 認識Date與Calendar

13.2.1 時間軸上瞬間的Date函數

  • 若是想要取得系統時間,方法之一是使用System.currentTimeMillis()方法,返回的是long類型整數。
  • Date有兩個構造函數能夠使用,一個可以使用epoch毫秒數構建,另外一個爲無自變量構造函數,內部亦是使用System.currentTimeMillis()取得毫秒數,調用getTime()可取得內部保存的epoch毫秒數值。
    13.2.2 格式化時間日期的DateFormat
DateFormat是個抽象類,其操做類是java.text.SimpleDateFormat,能夠直接構建SimpleDateFormat實例,或是使用DateFormat的getDateInstance()getTimeInstance()、getDateTimeInstance等靜態方法,用較簡便方式按不一樣需求取得SimpleDateFormat實例。

13.2.3 處理時間日期的Calendar學習

Date如今建議做爲時間軸上的瞬間表明,要格式化時間日期則經過DateFormat,若是想要取得某個時間日期信息,或者是對時間日期進行操做,能夠使用Calendar實例。
Calendar是個抽象類,java.util.GregorianCalendar是其子類,操做了儒略曆與格里高利曆的混合歷,經過Calendar的getInstance()取得的Calendar實例,默認就是取得GregorianCalendar實例。

13.2.4 設定TimeZone測試

使用Calendar時若沒有使用時區信息,則會使用默認時區。能夠使用java.util.TimeZone的getDefault()來取得默認時區信息。

13.3 JDK8新時間日期API

- 真正可靠的信息只有內含epoch毫秒數。同時也能夠使用Instant的靜態方法`now()`取得表明Java epoch毫秒數的Instant實例。
- LocalDateTime只包括時間與日期,LocalDate只有日期,LocalTime只有時間,他們都是對時間的描述,沒有時區信息。
- 若是想要取得表明月份的數字,不要使用oridinal()方法,由於`oridinal()`是enum在定義時的順序,從0開始,想要取得表明月份的數要經過`getValue()`方法。
- 對於時間計量,新時間與日期API以類Duration來定義,可用於計量天、時、分、秒的時間差,精度調整能夠達納秒等級,而秒的最大值能夠是long類型可保存值。對於年、月、星期、日的日期差,使用Period類定義。

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

  • 問題1:編譯代碼出現錯誤的狀況
  • 問題1解決方案:把java.utl.* 錯打java.until.*

代碼託管

上週考試錯題總結

  • 下面哪條命令能夠把 f1.txt 複製爲 f2.txt ?(AC)

A .cp f1.txt f2.txtthis

B .copy f1.txt f2.txt.net

C .cat f1.txt > f2.tx設計

D .cp f1.txt | f2.tx

E .copy f1.txt | f2.tx

『考點』:copy是Windows下的命令。cat f1.txt > f2.tx 經過輸出重定向實現了複製。

結對及互評

結對同窗:曹翔

評分標準

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

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

  5. 本週有效代碼超過300分行的(加2分)
    • 一週提交次數少於20次的不加分
  6. 其餘加分:
    • 週五前發博客的加1分
    • 感想,體會不假大空的加1分
    • 排版精美的加一分
    • 進度條中記錄學習時間與改進狀況的加1分
    • 有動手寫新代碼的加1分
    • 課後選擇題有驗證的加1分
    • 代碼Commit Message規範的加1分
    • 錯題學習深刻的加1分
    • 點評認真,能指出博客和代碼中的問題的加1分
    • 結對學習狀況真實可信的加1分
  7. 扣分:
    • 有抄襲的扣至0分
    • 代碼做弊的扣至0分
    • 遲交做業的扣至0分

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20155334
    • 結對照片
    • 結對學習內容
      • XXXX
      • XXXX
      • ...

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

這周學習了第十二章和第十三章的內容。主要學習的是第十三章,講的主要是時間與日期,我先把教材上的內容看了一遍,瞭解了時間與日期的基本知識,再進一步用Java語言實現時間與日期的輸出。用書上的代碼練習以後,對內容的瞭解更加深刻。對於課上的測試,除了好好複習以外,也要多看看視頻學習下,知識掌握不全面,分數過低。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 200/200 2/2 20/20
第二週 300/500 2/4 18/38
第三週 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

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

  • 計劃學習時間:15小時

  • 實際學習時間:17.5小時

參考資料

相關文章
相關標籤/搜索