20145310 《Java程序设计》第7周学习总结
20145310 《Java程序设计》第7周学习总结
教材学习内容总结
本周主要进行第十二章和第十三章的学习。
Lambda定义:一个不用被绑定到一个标识符上,并且可能被调用的函数。
在只有Lambda表达式的情况下,参数的类型必须写出来,如果有目标类型的话,在编译程序可推断出类型的情况下,就可以不写出Lambda表达式的参数类型。
Lambda表达式本身是中性的,不代表任何类型的实例,可用来表示不同目标类型的对象操作。
Lambda表达式在平行设计的时候,能够进行并行处理。
使用Stream进行管道操作:
绝大多数的Stream并不需要呼叫close()方法,JDK8中要close()的是Files.lines()、Files.list()与Files.walk()方法。
格林威治标准时间(GMT),现已不作为标准时间使用,即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间。
在1972年引入UTC之前,GMT与UT是相同的。
世界协调时间(UTC),UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒。
就目前来说,即使标注为GMT(无论是文件说明,或者是API的日期时间字符串描述),实际上谈到时间指的是UTC时间。
儒略历:修正了罗马历隔三年设置一闰年的错误,改采四年一闰。
格里高利历:改革了儒略历。
ISO 8601标准:采用统一的数据格式。
每个地区的标准时间各不相同,涉及到地理、法律、经济、社会、政治等问题。
考虑了UTC偏移的时间表示上,通常会标识Z符号。
有些高纬度国家,夏季、冬季日照时间差异很大,实施日光节约时间。
Date:取得系统时间,方法之一就是使用System.currentTimeMillis()方法,返回long类型整数,代表1970年1月1日0时0分0秒0毫秒至今经过的毫秒数。
新时间日期处理API的主要套件命名为java.time。对于机器相关的时间概念,设计了Instant类,用以代表自定义的Java epoch之后的某个时间点经历的毫秒数,精确度基本上是毫秒,但可添加柰秒精度的修正数值。
人类时间观点API,LocalDateTime(包括日期与时间)、LocalDate(只有日期)、LocalTime(只有时间),如果需要时区,可以基于LocalDateTime、LocalDate、LocalTime等来补充。
机器时间观点的API。
字串时间格式的处理,职责落到了java.text.DateFormat身上,其操作类别java.text.SimpleDateFormat,可以直接建构SimpleDateFormat实例,或使用DateFormat的getDateInstance()、getTimeInstance()、getDateTimeInstance()等静态方法。
直接构建SimpleDateFormat的好处是,可使用模式字符串自定义格式。
LocalDateTime包括日期与时间;LocalDate只有日期,如果设定不存在的日期会抛出DateTimeException;LocalTime只有时间。
若需要时区信息,可基于上述三个时间描述的ZoneDateTime和OffsetDateTIme。
想要取得系统时间,方法之一是使用System.currentTimeMillis()方法
其他(感悟、思考等,可选)
这周学习了十二章和十三章,又学到了很多知识,需要好好消化,多练习。
代码托管截图:
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 2/2 | 10/10 | 初步认识java |
第二周 | 150/250 | 1/3 | 12/22 | 掌握Java基础语法 |
第三周 | 537/787 | 2/4 | 20/42 | 认识对象,对象封装 |
第四周 | 500/1287 | 1/5 | 20/62 | 继承与多态,接口与多态 |
第五周 | 300/1587 | 1/6 | 20/82 | |
第六周 | 300/1887 | 2/8 | 20/82 | |
第六周 | 200/2087 | 2/10 | 20/82 |