20189217 2018-2019-2 《移動平臺開發實踐》第4周學習總結
阿新 • • 發佈:2019-03-24
統一 android開發 進度條 hello ava center 開發 分號 value
教材學習內容總結
第12章要點:
要點1:enum
- enum類可以獨立使用,也可以作為類的一部分。如果需要在應用程序中的多個地方引用它的話,就讓它單獨使用。如果只是用於一個類中,最好讓enum成為這個類的一部分。
- enum值是區分大小寫的,且按慣例要大寫。
- 在保證變量只能被賦給一個有效值這方面,enum比靜態final更好。
要點2:java.lang.Enum類
- enum類沒有公有的構造函數,這使得不可能將其實例化。
- 它們隱式地是靜態的。
- 每個enum常量只有一個實例。
- 可以在enum上調用values方法,以遍歷其枚舉值,該方法返回對象的一個數組。
要點3:枚舉成員
- 一個enum類可以有構造方法和方法,如果有構造方法,其訪問級必須是私有的或默認的,如果一個enum定義包含了常量以外的其他內容,常量必須在其它內容之前定義,且最後的常量用一個分號結束。
第13章要點:
要點1:
類 | 表示 | 適用於 |
---|---|---|
Instant | 表示時間線上的一個時間點 | 計時 |
LocalDate | 沒有時間部分和時區部分的一個日期 | 生日 |
LocalDateTime | 日期和時間 | 訂單配送日期時間 |
LocalTime | 只有時間沒有日期 | 不關心日期,只需要一個時間 |
ZonedDateTime | 有時區 | 機場航班時間 |
Duration | 納秒級精度的時間量 | 建模航班時間 |
Period | 天數、月份 | 計算年齡 |
DateTimeFormatter | 格式化日期和時間 | - |
第14章要點:
要點1:集合概述
- 集合也叫容器,提供了一種方法來存儲、訪問和操作其元素。
- Collection有3個主要的子接口:List、Set和Queue。
- Collection接口將對象組織到一起。數組不能調整大小,並且只能組織相同類型的對象,而集合允許添加任何類型的對象,並且不強迫你指定初始大小。
- Map接口可以用於存儲鍵/值對。
要點2:List和ArrayList
- List又叫序列,是一個有序的集合。
- ArrayList是最為常用的List的實現。
- 可以使用索引來訪問其元素,也可以在確切的位置插入一個元素。
- List使用add來插入一個元素,用set來替換一個元素,用remove來刪除一個元素。
- List允許存儲重復的元素。
- Arrays類提供了一個asList方法,允許你一次向一個List添加數組或任意多個元素。
- List的sort方法可以很容易地對一個List進行排序。
要點3:遍歷一個集合
方法1
for (Iterator iterator = myList.iterator();iterator.hasNext()){
...
}
方法2
for (Object object:myList){
...
}
方法2是方法1的快捷方式。
要點4:Set和HashSet
- 和List不同,Set不允許重復的內容。
- Set允許有最多一個空元素。
- Set最流行的實現是HashSet。
要點5:集合轉換
將一個Queue轉換為一個List:
Queue queue = new LinkedList();
queue.add("hello");
List list = new ArrayList();
將一個List轉換為一個Set:
List myList = new ArrayList();
myList.add("hello");
Set set = new HashSet(myList);
要點6:Map和HashMap
- Map保存了鍵到值的映射。
- Map中不能有重復的元素,並且每個鍵最多映射一個值。
- Map有幾個實現,HashMap是非同步的,Hashtable是同步的。
第15章要點:
要點1:泛型類型
- 反省類型常被叫做參數性類型,可以接受參數。
聲明一個泛型類型:
MyType < typeVar1, typeVar2, ... >
e.g.
E就是所謂的類型變量,也就是能用一個類型替代的變量。List<E> myList;
要實例化一個泛型類型,在聲明的時候,傳入相同的參數列表。例如,要創建使用String的一個ArrayList,在尖括號中傳入String。
List<String> myList = new ArrayList<String>();
在Java7及之後的版本中,還可以寫得更精簡:
List<String> myList = new ArrayList<>();
使用泛化類型,類型檢查在編譯時進行。
要點2:使用?通配符
- List<?>表示任意類型的對象的一個列表。
在聲明或創建一個泛型類型的時候,使用通配符是非法的,如下所示:
List<?> myList = new ArrayList<?>(); //非法
想要創建接受任意類型的對象的一個List,使用Object作為類型變量,如下面代碼所示:
List<Object> myList = new ArrayList<>();
教材學習中的問題和解決過程
- 問題1:為什麽有些enum類要有構造函數?
- 問題1解決方案:通過看一些別人寫的代碼發現,這類enum的構造函數是為了添加枚舉元素,設置枚舉元素上下界等功能而存在的。
代碼調試中的問題和解決過程
- 問題1:搭檔的代碼下載下來之後IDEA打開無法build。
- 問題1解決方案:需要在project structure中手動設置test、sources等目錄的路徑。另外,需要統一language level。
代碼托管
上周考試錯題總結
錯題1
double d = 0.1 + 0.1 + 0.1, System.out.println(i);的結果是0.3.【錯誤】 因為double是個近似值,它四舍五入後還是0.3。0.3化成二進制其實是個無窮小數,保存成double,只能是個近似值
錯題2
Java中try…catch…final用來處理異常。【錯誤】 Java中用try…catch…finally來處理異常。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 1/3 | 17/37 | |
第三周 | 787/1287 | 1/4 | 15/52 | |
第四周 | 350/1637 | 1/5 | 16/68 |
計劃學習時間:18小時
實際學習時間:16小時
參考資料
- Java和Android開發學習指南(第二版)
20189217 2018-2019-2 《移動平臺開發實踐》第4周學習總結