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类定义。

结对及互评

评分标准

  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

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

- 结对学习内容
- 第十四、十五章
- ...

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

这一周稍稍改变了一个写博客的习惯,以前喜欢学完再总结写,后来发现这样很容易忘记自己截图对应的是什么问题- -,这次尝试了一边学习一边把自己认为的重点记录下来,果然好很多。感觉有在慢慢适应这种学习方式,希望自己继续加油。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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小时

  • 改进情况:一边学习一边记录重点,感觉收获更多,印象更深刻。

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

20155328 2016-2017-2 《Java程序设计》 第8周学习总结的更多相关文章

  1. 20155328 2016-2017-2 《Java程序设计》第九周学习总结

    20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...

  2. 20155328 2016-2017-2 《Java程序设计》 第一周学习总结

    20155328 2016-2017-2 <Java程序设计> 第一周学习总结 教材学习内容总结 本周学习目标是浏览<Java学习笔记>中的十八章,其中第一章和第二章认真学习, ...

  3. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  4. 20155216 2016-2017-2 《Java程序设计》第九周学习总结

    20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...

  5. 20155320 2016-2017-2《Java程序设计》第九周学习总结

    20155320 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  8. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  9. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  10. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

随机推荐

  1. 汉码盘点机PDA无缝对接思迅思迅盘点机思迅条码数据采集器批号商品盘点的方法

    1.1.    盘点批号 如果某些商品进行了批号管理,我们不仅仅要清点什么商品总数有多少个,我们还要区分该商品的某个批号有多少个数量,因此以前批号盘点工作量是非常大的. 我们的盘点机PDA支持批号盘点 ...

  2. 火狐浏览器之伪造IP地址

    前言: 前段时间,测试过程中需要伪造来源IP地址,百思不得其解,因而发现火狐浏览器的这个Modify Headers插件,十分好用,推荐给大家. 步骤: 1.安装插件Modify Headers 进入 ...

  3. springboot 异步调用Async使用方法

    引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3. ...

  4. 【MOOC EXP】Linux内核分析实验一报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  [反汇编一个简单的C程序]   实验 ...

  5. maybe i have no answer

    怎么说呢,我从小学开始到高中,大学.我觉得老师对大家都是一样的,虽然我因为父母的原因可能和老师接触比较多,但是学业上其实没什么帮助的. 我更希望老师能给我人生道路上的指点,虽然自己的道路确实是自己走出 ...

  6. Leetcode题库——36.有效的数独

    @author: ZZQ @software: PyCharm @file: leetcode36_isValidSudoku.py @time: 2018/11/19 19:27 要求:判断一个 9 ...

  7. deepin 下mysql编码问题utf8的解决

    deepin 下mysql编码问题utf8的解决 参考链接 http://www.ha97.com/5359.html 与之不同的地方在第二歩 二.最简单的完美修改方法,修改mysql的my.cnf文 ...

  8. multer详解

    Express默认并不处理HTTP请求体中的数据,对于普通请求体(JSON.二进制.字符串)数据,可以使用body-parser中间件.而文件上传(multipart/form-data请求),可以基 ...

  9. 【转】Mysql事务,并发问题,锁机制

    转自:http://www.cnblogs.com/fidelQuan/p/4549068.html 1.什么是事务 事务是一条或多条数据库操作语句的组合,具备ACID,4个特点. 原子性:要不全部成 ...

  10. vagrant 入门

    0.说明 本门所有的操作都是基于mac.windows可做相应调整,大体流程是一样的. 1.什么是vagrant 通俗来讲vagrant是一个通过命令行,来管理虚拟机的工具,vagrant本身并没有提 ...