学号20155311 2016-2017-2 《Java程序设计》第7周学习总结

时间:2022-09-20 19:22:06

学号20155311 2016-2017-2 《Java程序设计》第7周学习总结

教材学习内容总结

  • 时间的度量 格林威治时间,简称GMT时间,由观察太阳而得来;世界时,UT;国际原子时,TAI;世界协调时间,UTC;Unix时间,以1970年1月1日00:00:00为起点而经过的秒数,不考虑闰秒修正;epoch,以1970年1月1日00:00:00为起点而经过的毫秒数。
  • 年历简介 儒略历,四年一闰;格里高利历改革了儒略历;ISO 8601标准在数据定义上大部分与格里高利历相同。 认识时区 日光节约时间。
  • Date 使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间;利用DataFormat可以对字符串格式进行处理,分别有GetDateInstance、GetTimeInstance、GetDateTimeInstance
    DateFormat java.text.DateFormat复责字符串时间格式处理,DataFormat是个抽象类,其操作类为java.text.SimpleDataFormat,getDataInstance()、getTimeInstance()、getDataTimeInstance()等静态用法。
  • Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。 例:Calendar cal = Calendar.getInstance();使用默认时区和语言环境获得一个日历。 cal.add(Calendar.DAY_OF_MONTH, -1);取当前日期的前一天. cal.add(Calendar.DAY_OF_MONTH, +1);取当前日期的后一天
  • 机器时间观点的API Date实例只代表机器观点的时间信息;使用Instant的静态方法now()取得Instant实例,ofEpochMilli()可以指定Java epoch毫秒数,ofEpochSecod()指定秒数;取得Instant实例后,可以使用plusSecond()、plusMillis()、plusNanos()、minusSeconds()、minusMillis()、 MinusNanos()做时间轴上的运算,返回新的Instant实例,代表运算后的时间。
  • 人类时间观点的API Date实例只代表机器观点的时间信息;在上面那些类的基础上可以使用ZonedDateTime等来进行补充;Month是enum类型,取得代表月份的数字,取得月份要通过getValue()方法,而不是使用oridinal()方法。
  • TemporalAmount 时间计量,新时间和日期用API用类Duration来定义,对于年、月、日、星期的日期差,可使用Period类定义,静态方法ofDays()、ofMonths()、ofWeeks(),返回Period实例。

    教材学习中的问题和解决过程

    第十二章第十三章感觉还好,第四五六七章的内容才是java核心内容,比较抽象。之后的内容都是介绍各种API的应用,都是活生生的例子,比较具体,如果觉得难那是因为对这部分知识感到陌生,不熟悉

    代码调试中的问题和解决过程

  • java.time.LocalDate:LocalDate是一个不可变的类,它表示默认格式(yyyy-MM-dd)的日期,我们可以使用now()方法得到当前时间,也可以提供输入年份、月份和日期的输入参数来创建一个LocalDate实例。该类为now()方法提供了重载方法,我们可以传入ZoneId来获得指定时区的日期。

学号20155311 2016-2017-2 《Java程序设计》第7周学习总结

学号20155311 2016-2017-2 《Java程序设计》第7周学习总结

[代码托管]http://git.oschina.net/bestiisjava2017/gaoziyun20155311/tree/master/%E7%AC%AC%E5%85%AB%E5%91%A8/src?dir=1&filepath=%E7%AC%AC%E5%85%AB%E5%91%A8%2Fsrc&oid=e058edd0ce8eab4a4fc3081d53b720f2a16b4c11&sha=e64d70f883c4fe4b988448c51c896b426e52e7fc

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 调用线程的interrupt()方法 ,会抛出()异常对象?
    A .
    IOException
    B .
    IllegalStateException
    C .
    RuntimeException
    D .
    InterruptedException
    E .
    SecurityException
    正确答案: D E

  • 现有
    class Calc {
    public static void main(String [] args) {
    try {
    int x = Integer.parselnt ("42a") ;
    //insert code here
    System.out.print ("oops");
    }
    }
    }
    下面哪行分别插入到第五行,会导致输 "oops" ?
    A .
    catch (IllegalArgumentException e) {
    B .
    } catch (IllegalStateException c) {
    C .
    } catch (NumbelFormatException n) {
    D .
    } catch (ClassCastException c) {
    正确答案: A C

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

其他(感悟、思考等,可选)

本周的内容比较少,我感觉比前几章易于理解,大部分书上的代码敲进去后都运行成功了,给了我很大的信心。这两周除了学习以外学生活动那边也比较忙碌,过了这段时间
我想我或许应该加大投入java学习的时间。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
第五周 280/1260 1/5 14/70
第六周 478/1738 2/7 16/86
第七周 1400/4000 10/30 145/400