20155336 2016-2017-2《JAVA程序设计》第七周学习总结
20155336 2016-2017-2《JAVA程序设计》第七周学习总结
教材学习内容总结
第十三章
- 认识时间与日期
- 格林威治标准时间:简称GMT时间,参考格林威治皇家天文台的标准太阳时间。
- 世界时:简称UT,借由观测远方星体跨国子午线。
- 国际原子时:简称TAI,将秒的时间定义为铯原子辐射震动9192631770周耗费的时间。
- 世界协调时间:简称UTC,保持TAI与UT的时间不要差距过大。
- Unix时间:Unix系统时间表示法,用以表达时间轴上某一瞬间。
- epoch:简称为epoch毫秒数,从某个特定时代开始,时间轴上某一瞬间。
- 儒略历:用来取代罗马力,修正了隔三年设置一闰年的错误,改采四年一闰。
- 格里高利历:改革了儒略历。
- ISO 8601标准:并非年历系统,而是时间日期表示方法的标准,用以统一时间日期的数据交换格式。
- 时区:大致来说经度15度偏移一个小时,考虑了UTC偏移的时间表示上,通常会标识Z符号。
- Date与Calendar
关于Date:
- 想要取得系统时间,使用System.CurrentTimeMillis()方>法,返回的是long类型整数。
- Date是偏向机器的时间观点。
- 有两个函数可以调用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数,内部亦是使用SystemcurrentTimeMillis()取得epoch函数,调用getTime()可取得内部保存的epoch毫秒数。
关于DateFormat:
- java.text.DateFormat用来有关字符串时间格式的处理。
- 操作类是java.text.SimpleDateFormat,可直接构建SimpleDateFormat实例。其好处是可以使用模式字符串自定义格式。
- 有个prase()方法,可以按照构建SimpleDateFormat时指定的格式,将指定的字符串剖析为Date实例。
关于Canlendar:
- 可以用其取得某个时间日期信息,或者是对时间日期进行操作,可以使用其实例。
- 可以使用getTime()方法取得Date实例
- 要想取得年月日日期时间字段,可以使用get()方法并指定Clendar上的字段枚举常数。
- 在取得一个Clendar实例后可以采用add()方法,来改变Clendar时间。
- GregoricanClendar是Clendar的子类。
- 日历时间可以使用 GregoricanClendar的setGregoiranChange()方法来修改,设为Date(Long.MAXVALUE)就是纯粹的儒略历,设为Date(Long.MINVALUE)就是纯粹的格里高利历。
- 想要比较两个Clendar的时间日期先后,可以使用after()或before()方法。
关于TimeZone:
- 使用默认时区,可以使用java.util.TimeZone的getDefault()来取得默认时区信息。
- 可以通过setTimeZone()方法设定TimeZone
JDK8新时间日期API
机器时间观点的API:
Date实例应该只代表机器观点的时间信息,真正可靠的信息只有内含的epoch毫秒数。如果取得Date实例,应该通过Date的getTime()取 得epoch毫秒数,这样就不会混肴。 主要为java.time。设计了Instant类,用以代表自定义的java epoch 精度基本上是毫秒,但可以添加奈秒。
人类时间观点的API:
- LocalDateTime包括日期与时间、LocatDate只有日期、LoucatTime只有时间。
- 当补上时区信息后,如果组合起来的时间实际上不存在,ZoneDateTime会自动更正。
- 在新的时间与日期API中,UTC偏移量与时区的概念是分开的。offsetDateTime单纯代替UTC偏移量,使用ISO 8601。
- 可用Year表示年、用YearMonth表示年月、只想表示月可以使用Month、想表示月日可以使用MonthDay。想取得代表月份的数字,不要使用oridinal()方法,因为其是enum再定义时的顺序,从零开始,想要去的代表月份的数要通过getValue()方法。
- 实际上以上方法都操作了Temporal接口。
对时间的运算:
- ofPattern是java.time.format.DateFormatter的静态方法。
- 对于年、月、星期、日的日期的差,则使用Preriod类定义。
- ofDays()、ofMonths()、ofWeeks()其实是Preriod的静态方法。
- plus()方法接受java.time.temporal.TemporalAmount实例,而TemporalAmount的操作类也就是Preiod与Duration。
- plus()另一方法接受java.time.temporal.temporalUnit实例,java.time.temporal.ChronoUnit是TemporalUnit实作类,使用enum实作。
- TemporalAccessor定义了只读的时间对象读取操作、实际上Temporal是TemporalAccessor子接口,增加了对时间的处理操作。
- 年历系统设计:java.time.chrono操作了java.time.chrono.Chronlogy接口的类。
教材学习中的问题和解决过程
学习本章有关时间与日期的,没有之前的java语法那么繁杂,规定自然而然也会少一些。但是还是存在一些问题的。
问题一:对于理解机器时间的概念和人类时间的概念存在问题
同样对于Date实例真正代表的并不是日期,最接近的概念应该是时间轴上特定的某一瞬间。时间精=精度是毫秒,是UTC时间1970年1月1日 0时0分0毫秒至某个特定瞬时的毫秒差。 其实理解有关时间与日期的API,同样也是把握住java是面向对象设计的而不是面向过程这一要点,理解起来知识点就会简单许多。
问题二:对于TemporalAmount和TemporalUnit
对于TemporalAmount和TemporalUnit要把握住继承了哪个类,操作了哪个接口,注意各自的操作特点掌握分清各个方法的用途。
代码调试中的问题和解决过程
本周是关于日期与时间,学习难度不大,主要仔细跟着书上的步骤来,代码的难度也比原来小了许多,在书上范例代码调试的问题和解决基本没
有存在问题。 但是通过代码的调节发现不论是那一块的知识与运用方法都要掌握准确,不然很容易会出错误。
代码托管




结对情况

其他(感悟、思考等,可选)
学习java已经很久了,掌握的硬知识也有很多了。但是在这么久的学习java要把握住java是面向对象的,不然在理解一些类和一些方法的时候
会存在问题。不论是哪些方面的知识总是记清楚之间的用法和具体区别。通过这门课程不光要学习很多的知识点,而且更要学会这种学习方式,
一种遇到问题去解决问题的思维过程,这样才是有益的收获。
评分标准(满分10分)
- 从0分加到10分为止
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
6 其他加分: - 周五前发博客的加1分 - 感想,体会不假大空的加1分 - 排版精美的加一分 - 进度条中记录学习时间与改进情况的加1分 - 有动手写新代码的加1分 - 课后选择题有验证的加1分 - 代码Commit Message规范的加1分 - 错题学习深入的加1分 7 扣分: - 有抄袭的扣至0分 - 代码作弊的扣至0分
点评模板:
基于评分标准,我给本博客打分:10。得分情况如下:
- 正确使用Markdown语法
- 模板中的要素齐全
- 教材学习中的问题和解决过程, 一个问题加1分,一共俩
- 代码调试中的问题和解决过程, 一个问题加1分,一共俩
- 本周有效代码超过300分行的(加2分)
- 感想,体会不假大空的加1分
- 有动手写新代码的加1分
- 代码Commit Message规范的加1分
- 课后选择题有验证的加1分
就这10分,还是根本不够加的~~~
点评过的同学博客和代码
学习进度条
| 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
-------- | :----------------:|:----------------:|:---------------: |:-----:|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 800/1300 | 4/9 | 30/90 | |
| 第五周 | 1800/2000 | 5/9 | 45/100 | |
| 第六周 | 2400/3000 | 6/10 | 60/100 | |
| 第七周 | 3100/4000 | 7/11 | 75/100 | |
计划学习时间:21小时
实际学习时间:15小时
改进情况: 有空多看看现代软件工程 课件 软件工程师能力自我评价表
参考资料
20155336 2016-2017-2《JAVA程序设计》第七周学习总结的更多相关文章
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 20155336 2016-2017-2《JAVA程序设计》第九周学习总结
20155336 2016-2017-2<JAVA程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连接 ...
- 20155336 2016-2017-2《JAVA程序设计》第二周学习总结
20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过AP ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- [转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出
VSTS被拆成5个部分,以Azure DevOps服务形式推出 http://www.infoq.com/cn/news/2018/09/vsts-divide5parts-azuredevops?u ...
- 优先级:P0
优先级:P0 Priority https://www.zhihu.com/question/23353333?sort=created 一个团队, 每周需求pk的例会,每个产品经理都要给自己提出的需 ...
- hdu6446 Tree and Permutation
没啥好说的,拆一下贡献就完事了.记dis(x,y)为树上x到y的最短路径,设长度为n的排列中有f(n)个里面x和y相邻(不考虑x和y的顺序),那么f(n)=(n-2)! (n-1) 2,显然这个f(n ...
- Eclipse报错Project configuration is not up-to-date with pom.xml
1.问题 Description Resource Path Location Type Project configuration is not up-to-date with pom.xml. S ...
- C++模式学习------单例模式
单例(Singleton)模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.例如一些类 ...
- Java集合类框架的基本接口有哪些?
总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合: 其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合: 而ArrayLis ...
- 【BZOJ2962】序列操作(线段树)
[BZOJ2962]序列操作(线段树) 题面 BZOJ 题解 设\(s[i]\)表示区间内选择\(i\)个数的乘积的和 考虑如何向上合并? \(s[k]=\sum_{i=0}^klson.s[i]*r ...
- BZOJ 50题纪念?
是的,这次的纪念帖也比较磕碜-- 但是还有更磕碜的↓↓↓ 2017年6月7日,我在我的旧博客发了个bzoj10题纪念-- 那时我还是一个又young又simple的菜鸡(现在可能也是--),省选之后觉 ...
- 洛谷 P4363 [九省联考2018]一双木棋chess 解题报告
P4363 [九省联考2018]一双木棋chess 题目描述 菲菲和牛牛在一块\(n\)行\(m\)列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落 ...
- NOIWC前的交流题目汇总
RT 2018.12.27 i207M:BZOJ 4695 最假女选手 以维护最大值为例,记录最大值和严格次大值和最大值的出现次数,然后取min的时候递归到小于最大值但大于次大值修改,这个就是最重要的 ...