20155207 2016-2017-2 《Java程序设计》第七周学习总结
20155207 2016-2017-2 《Java程序设计》第七周学习总结
教材学习内容总结
第13章 时间与日期
13.1 认识时间与日期
13.1.1 时间的度量
- 格林威治时间(GMT)
- 世界时(UT)
- 国际原子时(TAI)
- 世界协调时间(UTC)
Unix时间:Unix系统的时间表示法epoch:来自于Unix的系统、平台、软件等选用这个时间作为时间表示法的起算点13.1.2 年历简介
- 儒略历
- 格里高利历
ISO 8601标准
13.1.3 认识时区
日光节约时间
13.2 认识
Data与Calender13.2.1 时间轴上瞬间的Data
- 使用
System.currentTimeMillis()方法,取得系统时间,返回 long 类型整数 - 使用
Date实例取得系统时间描述,Date有两个构造函数,一个可使用epoch毫秒数构建,另一个为无自变量构造函数(内部亦是使用System.currentTimeMiilis()取得eqoch毫秒数),调用getTime()可取得内部保存的epoch毫秒数值 setTime()(用来设置epoch毫秒数)字符串时间格式的处理
13.2.2 格式化时间日期的
DataFormatjava.text.DateFormat复责字符串时间格式处理,DataFormat是个抽象类,其操作类为java.text.SimpleDataFormat,可以直接构建SimpleDataFormat实例,或是使用DataFormat的getDataInstance()、getTimeInstance()、getDataTimeInstance()等静态用法getDateInstance()、getTimeInstance()、getDataTimeInstance()等静态方法主要是取得不同详细程度的日期时间,取得DataFormat实例时,也可以指定Locale实例,将日期时间格式化为指定的语系方式- 直接构建
SimpleDateFormat的好处是可使用模式字符串自定义格式 SimpleDateFormat有parse()方法,按照SimpleDateFormat时指定的格式,将指定的字符串剖析为Date实例13.2.3 处理时间日期的
CalendarCalendar实例取得某个时间日期信息,或者对时间日期进行操作Calendar是个抽象类,java.util.GregorianCalendar是其子类,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例- 取得
Calendar实例后,可以使用getTime()取得Date实例,使用get()方法并指定Calendar上的字段枚举常数 - 设定时间日期,不要对
Date设定,应该使用Calendar,月份的部分使用枚举常数定义 - 取得
Calendar实例后,使用add()方法,改变Calendar的值,只针对日期中的某个字段加减,使用roll()方法 - 日历时间可以使用
GregorianCalendar的setGregorianCalendar()方法来修改,设为Date(Long.MAX_VALUE)为纯粹的儒略历,Date(Long.MIN_VALUE)是纯粹的格里高利历 比较两个
Calendar的时间日期先后,使用after()或before()方法13.2.4 设定
TimeZonejava.util.TimeZone的getDefault()来取得默认时区信息- 取得指定时区的
TimeZone实例,可以使用ID字符串 - 用
TimeZone.getAvaliableIDs()取得可用的ID,返回String[] Calender在调用getInstance()时可以指定Timezone,如果已经取得Calender实例,可以通过setTimeZone()的方法设定时区13.3 JDK8新时间日期API
13.3.1 机器时间观点的API
Date是机器的时间观念- 日期处理API主要套件命名
java.time,机器相关的时间概念Instant类 - 使用
Instant的静态方法now()取得Instant实例,ofEpochMilli()可以指定Java epoch毫秒数,ofEpochSecod()指定秒数 取得
Instant实例后,可以使用plusSecond()``plusMillis()``plusNanos()``minusSeconds()``minusMillis()``MinusNanos()做时间轴上的运算,返回新的Instant实例,代表运算后的时间13.3.2 人类时间观点的API
- 1.
LocalDateTime、LocalDate和LocalTime- 对于片段的时间日期时间的描述,不具时区的时间与日期定义
- 2.
ZonedDateTime和OffsetDateTime- 基于
LocalDateTime、LocalDate和LocalTime来补齐缺少的时区信息 - Instant通过
atZone()``atOffset()转化成ZonedDateTime和OffsetDateTime,ZonedDateTime和OffsetDateTime可通过toInstant()取得Instant,ZonedDateTime和OffsetDateTime都有toLocalDate()``toLocalTime()``toLocalDateTime()取得localDate、localTime、localDateTime
- 基于
- 3.
Year``YearMonth``Month``MothdayMonth是enum类型,取得代表月份的数字,不要使用oridinal()方法(enum在定义时的顺序,从0开始),使用getValue()方法13.3.3 对时间的运算
- 1.
TemporaAmount- 操作类
Period``Duration - 时间计量,新时间和日期用API用类
Duration来定义,对于年、月、日、星期的日期差,可使用Period类定义(静态方法ofDays()``ofMonths()``ofWeeks(),返回Period实例) plus()方法接受java.time.temporal.TemporalAmount实例
- 操作类
- 2.
TemporalUnitplus()方法的另一重载版本,接受java.time.temporal.TemporalUnit实例,java.time.temporal.ChronoUnit是其实做类,使用enum实做
- 3.
Temporalplus()定义在Temporal接口上
- 4.
TemporalAccessor定义了只读的时间对象读取操作
13.3.4 年历系统设计
java.time套件中的类在需要实行年历系统时采用单一ISO8601年历系统
教材学习中的问题和解决过程
- 问题:p440程序中增强for循环语句含义
- 解决过程:将
values()方法取得的结果依次赋给新建的Month类型封装的month对象
代码调试中的问题和解决过程
- 问题:p438代码,取得时间信息为什么用了两个
getTime() - 解决过程:第一个
getTime()是Calendar实例方法,返回Date实例,第二个getTime()是Date实例方法,通过Date实例取得epoch毫秒数
代码托管

上周考试错题总结
- 以下()方法会使线程进入阻塞状态?
A .
Thread.sleep()
B .
wait()
C .
notify()
D .
interrupt()
我选:AD,正确:AB
interrupt()只能阻断未调用线程的线程。
结对及互评
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
- 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
- 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
其他(感悟、思考等,可选)
本周学习的知识一开始讲一些有关时间的各种历法的理论知识,有些觉得没有太大用处就快速看过了,结果看到后面机器时间与人类时间的不同时就理解不了了,没办法只能回头再看一遍
- 感受到了自己真正积极主动一行行的敲代码,才没能理解,达到敲代码的真正目的
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 0/0 | 2/2 | 20/20 | |
| 第二周 | 186/186 | 2/4 | 18/38 | |
| 第三周 | 689/875 | 3/7 | 22/60 | |
| 第四周 | 242/1117 | 2/9 | 30/90 | |
| 第五周 | 698/1815 | 2/9 | 30/120 | |
| 第六周 | 1269/3084 | 2/9 | 30/120 | |
| 第七周 | 342/3426 | 2/9 | 30/120 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:24小时
实际学习时间:24小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155207 2016-2017-2 《Java程序设计》第七周学习总结的更多相关文章
- 20155207王雪纯 2006-2007-2 《Java程序设计》第二周学习总结
20155207王雪纯 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 整数类型:short(占2字节).int()占4字节.long(占8字节) " ...
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 20155207 2016-2017-2 《Java程序设计》第九周学习总结
20155207 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立 ...
- 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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- 检测web服务器指定位置大文件是否存在
在bugscan群里看到有人问有一个大文件,想探测其是否存在.如果使用curl的话,会将整个文件下载到节点,对于扫描没有任何用处,反而浪费了扫描时间. 于是我想到的解决办法是不使用curl,直接用底层 ...
- LInux查看网速带宽及各进程占用情况:nethogs
安装: #Ubuntu: sudo apt-get install nethogs #CentOS: sudo yum install nethogs 使用: $ sudo nethogs
- js & 快捷键 & vue bind bug
js & 快捷键 & vue bind bug how to prevent addEventListener bind many times solution dataset &am ...
- C++模式学习------策略模式
当遇到同一个对象有不同的行为,方法,为管理这些方法可使用策略模式. 策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来.通常把一个系列的算法包装到一系列的策略类里面,这些类继承一个抽象的 ...
- BZOJ5324 JXOI2018守卫(区间dp)
对于每个区间[l,r],显然右端点r是必须放置守卫的.考虑其不能监视到的点,构成一段段区间.一个非常显然但我就是想不到的性质是,对于这样的某个区间[x,y],在(y+1,r)内的点都是不能监视到这个区 ...
- mysql查看表中列信息
查看所有数据库中所有表的数据库名和表名 SELECT `TABLES`.`TABLE_SCHEMA`, `TABLES`.`TABLE_NAME` FROM `information_schema`. ...
- Win7剪贴板粘贴汉字显示为乱码的解决办法
http://blog.csdn.net/tanaya/article/details/8684805 最近2天发现在记事本粘贴的时候汉字都显示为乱码了,很纠结,后面发现是[区域和语言]设置中的“文本 ...
- BZOJ 1013 | 一份写了一堆注释的高斯消元题解
题意 给出\(n\)维直角坐标系中\(n + 1\)个点的坐标,它们都在一个\(n\)维球面上,求球心坐标. 题解 设球面上某两个点坐标为\((a_1, a_2, ... a_n)\)和\((b_1, ...
- Linux系统启动详解(三)
上节已系统initramfs已启动完成,将系统控制权交给了真正的rootfs的/sbin/init,下面就是/sbin/init干活的时间了. 4 /sbin/init initramfs ...
- jq获取兄弟节点
$('#id').siblings() 当前元素所有的兄弟节点$('#id').prev() 当前元素前一个兄弟节点$('#id').prevaAll() 当前元素之前所有的兄弟节点$('#id'). ...
