20172320 2017-2018-2 《Java程序設計》第八周學習總結
20172320 2017-2018-2 《Java程序設計》第八周學習總結
教材學習內容總結
1、綁定多數情況下發生在編譯階段
2、被延遲的請求事件成為後綁定或動態綁定,後綁定的效率低於編譯階段的綁定效率
3、多態性引用:繼承方式和接口方式
4、一個引用變量可以指向有繼承關系的任何類的任何對象
5、實際將調用的方法版本取決於對象的類型而不是引用變量的類型
6、一個接口引用變量可以指向實現該接口的任何類的任何對象
7、選擇法排序通過相繼的將各值放在自己的最終位置,插入排序法是不斷地將一個新元素插入到已排好的數列子集中,直到整個數列有序排列為止
8、兩種排序都是n^2階算法,但選擇排序所執行的交換操作的次數更少,因此選擇法優於插入法
9、線性搜索從一個端點開始,以線性方式掃描整個搜索池;二分搜索從有序數列的中點開始搜索
10、若長遠的看搜索的效率不是重要問題時,線性搜索則可能是最佳選擇
教材學習中的問題和解決過程
- 問題1:兩種排序法的比較
- 問題1解決方案:書上說選擇排序的交換操作的次數少,所以優於插入法。但既然存在這種排列法,那麽就一定有它的優勢,在網上搜索了一下,對比了幾種排列法,發現了它相對其他幾個方法同時具有
穩定,快
的優勢,但不適合總量龐大的數據
同時還搜出了這兩個排序法效率的比較公式
可以看出序列越有序則插入排序所需比較次數越少;而選擇排序比較次數恒為N*(N-1)/2次,從而更進一步說明插入排列法不適合處理龐大雜亂的數據
代碼調試中的問題和解決過程
- 問題1:PP10.5無法排序
- 問題1解決方案:剛開始直接把第八章的DVD和movie復制過來在movie裏進行修改,結果無法排序,後來根本沒用compareTo方法,就在DVD中仿照Contact後面的compareTo進行定義,然後還有如圖這個問題
仔細對照發現,DVD中沒使用Comparable接口
代碼托管
上周考試錯題總結
All classes in Java are directly or indirectly subclasses of the ________ class.
A .Wrapper
B .String
C .Reference
D .this
E .Object
分析:Java要求所有類都有父類。如果一個類不擴展另一個類,那麽它在默認情況下擴展了對象類。對象類是Java中其他類的父類。In order to determine the type that a polymorphic variable refers to, the decision is made
A .by the programmer at the time the program is written
B .by the compiler at compile time
C .by the operating system when the program is loaded into memory
D .by the Java run-time environment at run time
E .by the user at run time
分析:多態變量可以包含許多不同的類型,但是在程序執行之前,它不知道是哪一種類型。在引用變量時,必須做出決策。這個決策是由運行時環境根據變量的最新分配而做出的。Using the reserved word, super, one can
A .access a parent class‘constructor(s)
B .access a parent class‘methods and instance data
C .access a child class‘constructor(s)
D .access a child class‘methods and instance data
E .none of the above
分析:超級保留字提供了一種機制,用於訪問父類的方法和實例數據(不管它們是否隱藏)。此外,可以使用super來訪問父類的構造函數。結對及互評
點評過的同學博客和代碼
- 本周結對學習情況
20172327
20172317 - 結對學習內容
?教材第10章
?閱讀10.1-10.6章節
?完成課後自測題,並參考答案學習
?完成課後練習題
?完成程序設計項目:至少完成PP10.1、PP10.4、PP10.5.
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 67/67 | 1/4 | 20/20 | |
第二周 | 328/395 | 1/5 | 20/40 | |
第三周 | 523/851 | 1/6 | 20/60 | |
第四周 | 1070/1921 | 1/7 | 20/80 | |
第五周 | 608/2529 | 1/8 | 10/90 | |
第六周 | 608/2899 | 1/9 | 20/110 | |
第七周 | 429/3328 | 1/10 | 20/130 | |
第八周 | 804/4131 | 1/11 | 20/150 |
參考資料
- 《Java程序設計與數據結構教程(第八版)》
- 藍墨雲班課
- java裏,幾種排序方法的優缺點
- 關於插入排序和選擇排序的比較
20172320 2017-2018-2 《Java程序設計》第八周學習總結