20145214 《Java程序设计》第7周学习总结
20145214 《Java程序设计》第7周学习总结
教材学习内容总结
时间的度量
- 格林威治标准时间(GMT),现已不作为标准时间使用,即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间。
- 在1972年引入UTC之前,GMT与UT是相同的。
- 秒的单位定义时基于TAI。也就是铯原子辐射的振动次数。
- 世界协调时间(UTC),UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒。
年历简介
- 儒略历修正了罗马历隔三年设置一闰年的错误,改采四年一闰。
- 格里高利历将儒略历1582年10月4号星期四的隔天,订为格里高利历1582年10月15日星期五。
- ISO 8601标准采用统一的数据格式。
时间轴上瞬间的Date
- Date有两个构造函数可以使用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数,内部亦是使用
System.currentTimeMillis()取得毫秒数,调用getTime()可取得内部保存的epoch毫秒数值。 DateDemo.java运行结果如下。

格式化时间日期的DateFormat
- DateFormat是个抽象类,其操作类是
java.text.SimpleDateFormat,你可以直接构建SimpleDateFormat实例,或是使用DateFormat的getDateInstance()、getTimeInstance()、getDateTimeInstance等静态方法,用较简便方式按不同需求取得SimpleDateFormat实例。 DateFormatDemo.java运行结果如下。

SimpleDateFormatDemo.java运行结果如下。

- SimpleDateFormat有一个
parse()方法,可以按构建SimpleDateFormat时指定的格式,将指定的字符串剖析为Date实例。HowOld.java运行结果如下。

处理时间日期的Calendar
Calendar是个抽象类,
java.util.GregorianCalendar是其子类,操作了儒略历与格里高利历的混合历,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例。Calendar calendar = Calendar.getInstance();
取得的Calendar实例后,用
getTime()取得Date实例,如果要取得年月日等时间字段,可以使用get()方法并指定Calendar上的字段枚举常数。out.println(calendar.get(Calender.YEAR));
out.println(calendar.get(Calender.MONTH));
out.println(calendar.get(Calender.DATE));
在取得一个Calendar的实例后,可以使用add()方法,来改变Calendar的时间。
CalendarUtil.java运行结果如下。

设定TimeZone
- 可以使用java.util.TimeZone的getDefault()来取得默认时区信息。
TimeZoneDemo.java运行结果如下。

TimeZoneDemo2.java运行结果如下。

机器时间观点的API
- 真正可靠的信息只有内含epoch毫秒数。同时也可以使用Instant的静态方法
now()取得代表Java epoch毫秒数的Instant实例。
人类时间观点的API
- LocalDateTime包括日期与时间;LocalDate只有日期,如果设定不存在的日期会抛出DateTimeException;LocalTime只有时间。
- 若需要时区信息,可基于上述三个时间描述的ZoneDateTime和OffsetDateTIme。
ZoneDateTimeDemo.java运行结果如下。

MonthDemo.java运行结果如下。

对时间的运算
- TemporalAmount:时间差以Duration定义,日期差以Period定义。
HowOld2.java运行结果如下。

- TemporalUnit:between()方法用于计算时间差。
- TemporalAccessor定义了只读的时间对象。
教材学习中的问题和解决过程
不清楚
ZonedDateTimeDemo.java程序运行结果中数字的含义。将
ZonedDateTimeDemo.java程序改写如下。import static java.lang.System.out;
import java.time.*; public class ZonedDateTimeDemo2 {
public static void main(String[] args) {
LocalTime localTime = LocalTime.of(0, 0, 0);
LocalDate localDate = LocalDate.of(2016, 4, 16);
ZonedDateTime zonedDateTime = ZonedDateTime.of(
localDate, localTime, ZoneId.of("Asia/Shanghai")); out.println(zonedDateTime);
out.println(zonedDateTime.toEpochSecond());
out.println(zonedDateTime.toInstant().toEpochMilli());
}
}
运行结果如下。

之后又运行了一下之前的
DateDemo.java,结果如下。

发现运行出来的数字与
ZonedDateTimeDemo2.java的数字相差不多,于是可以判断出原来程序中的数字是机器时间起点至今经过的毫秒数。
代码托管截图如下



其他(感悟、思考等,可选)
经过这七周的学习,可以说,我们已经基本学完了Java的基础知识,但是学完并不代表掌握了,如果现在让我独立去编写一个程序,我可能依旧会错误百出。但是在我看来,真正的知识就是在实践的基础上获得的,真正想要掌握这些知识,只能是通过自己独立编写程序来获得。可能第一次编的时候会出现许多的错误,但凡事都有第一次,这次出现的错误,当你思考分析出问题所在之后,下次编的时候就能够避免,经验也是这样通过一点一滴累积起来的。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 1/3 | 20/40 | |
| 第三周 | 400/900 | 1/4 | 25/65 | |
| 第四周 | 1236/2136 | 1/5 | 30/95 | |
| 第五周 | 1045/3181 | 1/6 | 35/130 | |
| 第六周 | 1827/5028 | 2/8 | 35/165 | |
| 第七周 | 234/5028 | 2/10 | 30/195 |
参考资料
20145214 《Java程序设计》第7周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- MySQL必知必会 读书笔记二:MySQL使用
使用MySQL 选择数据库 使用USE关键字 USE database; 了解数据库和表 如果不知道可以使用的数据库名时,可用MySQL的SHOW命令来显示这些信息. SHOW DATABASES; ...
- angular常用属性大全
Angular元素属性大全 addClass()-为每个匹配的元素添加指定的样式类名 after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点 append()-在每个匹配元 ...
- Python入门 —— 03GUI界面编程
GUI(Graphical User Interface) 即图形用户接口,又称图形用户接口. 是指采用图形方式显示的计算机操作用户界面.GUI 是屏幕产品的视觉体验和互动操作部分. "你的 ...
- Elasticsearch 聚合操作
数据准备: PUT /shop { "settings": { "number_of_shards": 3, "number_of_replicas& ...
- 阿里云Windows远程连接出现身份验证错误,要求的函数不正确”的报错。
最近很多阿里云用户在远程Windows Server的云服务器ECS时出现“身份验证错误,要求的函数不受支持”的报错. 这个问题解决起来非常简单,修改组策略中的一个配置就可以了. 在运行中输入gped ...
- ASA 5.0/8.0/9.0 杂记
ASA 10.0 之前的版本都是使用odbc方式连接,由于某个项目的需求,无奈学习一下这些老掉牙的技巧. 1.新建 数据源 (不会的话,自行搜索一下) 2.使用 快捷方式 或者 其他方式 执行 C:\ ...
- 集合之HashMap、Hashtable
HashMap 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashtabl ...
- Linux3.5—IIC学习分析
I2C控制器的设备对象内核已经实现并关联到platform总线. I2C控制器的驱动对象内核已经实现. 看mach-tiny4412.h /plat-samsung/目录下 /drivers/i2c/ ...
- Kylin 几个sql报错原因 汇总
Can't create EnumerableAggregate! while executing SQL由distinct count引起的错误 null while executing SQLjo ...
- easyui设置行的背景色
var arr = new Array(3000082, 3000095); self.itemGrid.datagrid({ rowStyler: function (index, row) { f ...