20155328 2016-2017-2 《Java程序设计》 第8周学习总结
2017-04-16 18:17
351 查看
20155328 2016-2017-2 《Java程序设计》 第8周学习总结
教材学习内容总结
NIO与NIO2认识NIO
相对于IO,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记。
Buffer中实际可读取或写入的数据界限(Limit)索引值可以由limit()方法得知或设定。下一个可读取数据的位置索引值可以使用position()方法得知或设定。
调用clear()方法后,limit()等于capacity(),position()会是0;调用flip()方法会将limit值设为position目前值,而position设为0.
NIO2文件系统
NIO2文件系统的中心是java.nio.file.spi.FileSystemProvider,本身为抽象类,是文件系统提供者才要操作的类,作用是产生java.nio.file与java.nio.file.attribute中各种抽象类或接口的操作对象。
Path的toAbsolutePath()方法可以将相对路径转为绝对路径Path。resolve()Y用于结合路径与路径,relativize()可从一个路径切换到另一个路径。
通用API
日志
取得log实例不能直接以new创建,必须使用Logger的静态方法getLogger()。调用getLogger时必须制定Logger指令所属名称空间。
Logger是记录信息的起点,要输出的信息须先通过Logger的Level与Filter过滤,再通过Handler的Level与Filter过滤,格式化信息的动作交给Formatter,输出信息的动作实际上是Handler负责。
每个Logger处理完自己的日志动作后会向父Logger传播,让父Logger也可以处理日志。如果不想让父Logger的Handler处理日志,可以调用Logger实例的setUseParentHandlers()设定为false,这样日志信息就不会传播给父Logger。也可以用Logger实例的setParent()方法指定父Logger。
国际化基础
对于日后可能变动的文字信息,可以考虑使用ResourceBundle来做信息绑定,从而将信息移至程序之外。ResourceBundle的静态getBundle()方法会取得一个ResourceBundle的实例。
地区信息的对应类是Locale,在建立Locale实例时,可以指定语言编码与地区编码。
教材学习中的问题和解决过程
问题1:在学习第十四章时,对于教材456页提到的startsWith()方法和endsWith()方法理解得不太清楚。问题1解决方案:查询了老师之前给出的帮助API文档,如图:
问题2:在看“使用Handler与Formatter”一节时,对Formatter的定义有点迷迷糊糊。
问题2解决方案:通过网页搜索与API帮助文档查询,大概对Formatter得概念清晰了一些:
Handler可设定自己的Filter实例,如果有且其isLoggable()返回true,就调用Formatter实例的format()方法格式化信息。简而言之,格式化信息的动作交给Formatter。
代码调试中的问题和解决过程
问题1:在敲教材P475的HandlerDemo时,对书中FileHandler handler = new FileHandler("%h/config.log");感到有些费解,不知道%h指的是什么。
问题1解决方案:在建立FileHandler指定模式字符串时,使用"%h"来表示用户的根目录,设定为
"%h/config.log"表示将configN.log文件储存在用户根目录。(N表示每个信息的文档编号,会自动递增)
代码托管
运行statistics脚本截图:上周考试错题总结
错题1:(单选题|1分)vi中哪条命令是不保存强制退出?
A .
:wq
B .
:wq!
C .
:q!
D .
:q
正确答案:C
错题解析及原因:wq 是保存退出。 !表示强制。错这道题主要是对vi中的命令不够了解,掌握不到位。
错题2:(单选题|1分)
需要人类能理解的时间,建议使用Date类的toString().
A .
True
B .
False
正确答案:B
错题解析:Date返回时间的格式无法改变,并不建议用toString()来得知年月日等字段信息。
错题3:多选题|1分)
JDK8 中新时间API中,用于度量时间的类有()
A .
Instant
B .
Duration
C .
Period
D .
LocalDateTime
正确答案:BC
错题解析:对于时间计量,新时间与日期API以类Duration来定义;对于年、月、星期、日的日期差,则使用Period类定义。
结对及互评
评分标准
正确使用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
参考示例
点评过的同学博客和代码
本周结对学习情况20155325
结对照片
- 结对学习内容 - 第十四、十五章 - ...
上周博客互评情况
20155335
20155235
20155208
20155210
20155312
其他(感悟、思考等,可选)
这一周稍稍改变了一个写博客的习惯,以前喜欢学完再总结写,后来发现这样很容易忘记自己截图对应的是什么问题- -,这次尝试了一边学习一边把自己认为的重点记录下来,果然好很多。感觉有在慢慢适应这种学习方式,希望自己继续加油。学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 8/8 | 1/1 | 20/20 | |
第二周 | 164/172 | 1/2 | 25/45 | |
第三周 | 248/420 | 1/3 | 25/70 | |
第四周 | 465/885 | 1/4 | 25/95 | |
第五周 | 390/1275 | 1/5 | 15/110 | |
第六周 | 626/1901 | 1/6 | 24/134 | |
第七周 | 269/2170 | 2/8 | 20/154 | |
第八周 | 608/2778 | 1/9 | 20/174 |
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:20小时
实际学习时间:20小时
改进情况:一边学习一边记录重点,感觉收获更多,印象更深刻。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
...
相关文章推荐
- 20145202马超 2016-2017-2 《Java程序设计》第8周学习总结
- 20155308 2016-2017-2 《Java程序设计》第8周学习总结
- 20155323 2016-2017-2 《Java程序设计》第8周学习总结
- 20155217 2016-2017-2 《Java程序设计》第8周学习总结
- 20155226 2016-2017-2 《Java程序设计》第8周学习总结
- 20155223 2016-2017-2 《Java程序设计》第8周学习总结
- 20155239 2016-2017-2 《Java程序设计》第8周学习总结
- 20155325 2016-2017-2 《Java程序设计》第8周学习总结
- # 20155214 2016-2017-2 《Java程序设计》第8周学习总结
- 20155332 2016-2017-2 《Java程序设计》第8周学习总结
- 20155328 2016-2017-2 《Java程序设计》第四周学习总结
- 20155328 2016-2017-2 《Java程序设计》第六周 学习总结
- 20155328 2016-2017-2 《Java程序设计》第三周学习总结
- 20155328 2016-2017-2 《Java程序设计》第7周学习总结
- 20155307 2016-2017-2 《Java程序设计》第8周学习总结
- 20155339 2016-2017-2 《Java程序设计》第8周学习总结
- 20155314 2016-2017-2 《Java程序设计》第8周学习总结
- 20155328 2016-2017-2 《Java程序设计》 第一周学习总结
- 20155218 2016-2017-2 《Java程序设计》第8周学习总结
- 20155205 2016-2017-2 《Java程序设计》第8周学习总结