教材内容学习与总结

第十二章

使用enum来为字段或者方法创建一组有效值。
enum类型可独立使用,也可以作为类的一部分。使用一个enum就像使用一个类或者接口一样。
枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
使用FOR便利枚举值。首先调用values方法,返回类似数组的对象,其中包含了指定的enum的所有值。
enum是一个类 ,一个enum可以有构造方法和方法。构造方法必须是私有的或者默认的,若包含了常量以外的其他内容,常量必须先定义,且最后的常量用分号结束。
可以给构造方法传递值,但常量必须带着构造方法的参数。

第十三章

新的日期和时间API使得操作日期和时间极为容易。java.time包包含了API核心类。包含java.time.chrono、java.time.format、java.time.temporal、java.time.zone
instant类表示时间线上的一个时间点,常用于计时操作。instant的静态方法now返回一个instant对象,表示当前的时间。
localdate类无时间和时期区分,适合表示生日。表示惊天的静态方法也是now,表示指定的年、月、日,使用 of 静态方法。
period类表示基于时间的一个时间量,常用方法:between、of、ofday、ofweek、ofmonths、ofyears等。
LocalDateTime类表示一个没有失去的日期时间。其中now、of方法常用。
ZoneDateTime类表示有时区的日期时间。并且是不可变的,事件部分按照纳秒精度存储。其中now、of方法常用。
java.time.format.DateTimeFormat可以格式化一个本地日期时间或者带时区的日期时间。但首先要创建一个DateTimeFormat实例。

第十四章

集合是将其他对象组织到一起的一个对象,集合也叫容器,提供了一种方法来存储、访问和操作元素。集合框架的主要类型是Collection接口。List、Set、Queue
是Collection的三个子接口。
List使用索引来访问元素,可以在确切的位置插入元素。索引从0开始,表示第一个元素。
使用iterator和for来便利一个集合。iterator有hasnext从第一个元素之前的位置开始,判断是否有下一个元素;next从第一个元素开始,返回指定元素,指向下一个元素;remove删除指向的元素。
用while或for遍历元素。
Set允许最多一个空元素,set的hashset不允许有空元素。
queue支持先进先出的排序方法;java.util.stack类是一个collection,是先进后厨的方式。

代码托管

问题及解决

cannot be cast to java.lang.Comparable,遇到这个异常错误,就是说treeMap(或者treeSet)并不知道该如何put,就会报这个异常错误。第一次put时,因为为空,所以不需要比较,即不会报错。但是当第二次put时,treeMap(或者treeSet)为了确保他是有序的就必须比较,这个时候发现这两个key根本无法比较,则抛出该异常错误。

学习进度条

学习目标

  • Java和Android开发学习

第四周进度

  • 教材Java和Android开发学习指南(第二版)第12、13、14章阅读完成
  • 代码练习

参考资料