20155213 2016-2017-2 《Java程序设计》第八周学习总结
教材学习内容总结
第十四章NIO与NIO2
- NIO
- NIO使用频道来衔接数据节点,在处理数据时,NIO可让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记。对于区块标记,提供了clear()、rewind()、flip()、compact()等高级操做。
- Buffer继承架构
- Buffer的直接子类们都有个allocate()静态方法,可让你指定Buffer容量(Capacity),若是想取得Buffer内部的阵列,可使用array()方法,若是有个数组想要转为某个Buffer子类实例,每一个Buffer子类实例都有wrap()静态方法能够提供操做。
- Buffer是容器,填装的数据不会超过它的容量,容量大小可使用capacity()方法取得,实际可读取或写入的数据界限(Limit)索引值能够由limit()方法得知或设定,下一个可读取数据的位置(Position)索引值,可使用position()方法得知或设定。
- NIO2
- NIO2文件系统API提供一组标准接口与类,应用程序开发者只要基于这些标准接口与类进行文件系统操做,底层事迹如何进行文件系统操做,是由文件系统提供者负责。
通用API
- 日志API简介
- 使用日志的起点是Logger类,要取得Logger类,必须使用Logger的静态方法getLogger(),Logger.log()方法能够用来输出信息。 默认的Logger还会记录时间、类、方法等信息,Logger是记录信息的起点,还会通过一些过滤才会输出信息,输出信息其实是由Handler负责。
- Logger有层级关系,每一个Logger处理完本身的日志动做后,回想父Logger传播,让父Logger也能够处理日志Logger与Handler预设都会先依Level过滤信息,若是没有作任何修改,取得的Logger实例之父Logger组态,就是Logger.GLOBAL_LOGGER_NAME名称空间Logger实例的组态,这个实例的Level设定为INFO,可经过Logger实例的getParent()取得父Logger实例,可经过getLevel()取得设定的Level实例。
- 在通过Logger过滤以后,还得再通过Handler的过滤,一个Logger能够拥有多个Handler,可经过Logger的addHandler()新增Handler实例。
教材学习中的问题和解决过程
- 问题1:怎么正确表示贪婪正则表达式
- 问题1解决方案:贪婪、非贪婪、独占量词:{n}是贪婪量词表示法的一种,表示前面的项目出现n次。在贪婪量词表示法后加上?,将会成为逐步量词(懒惰量词、非贪婪量词)
public class SplitDemo2 {
public static void main(String[] args) {
for(String str : "Justin dog Monica doggie Irene".split("\\bdog\\b")) {
System.out.println(str.trim());
}
}
}
代码调试中的问题和解决过程



上周考试错题总结
- JDK8 中新时间API中,用于度量时间的类有(BC)
- A .Instant
- B .Duration
- C .Period
- D .LocalDateTime
- A ________________ diagram helps us visualize the contents of and relationships among the classes of a program(___有助于咱们查看程序中类的内容和它们之间的关系).(B)
- A .class and object(类和对象)
- B .UML(UML类图)
- C .object-oriented(面向对象)
- D .public
- E .private
- 解析
- UML图有助于咱们想象的内容和程序的类之间的关系。 其余选择不指任何类型的图。
结对及互评
- 与155227辜彦霖结对
- 我的感受她的博客排版很好看,很值得借鉴,代码量和提交次数都挺多,这种态度值得学习,但有点,所解决问题不够个性化。
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(连接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺乏“教材学习中的问题和解决过程”的不加分
- 缺乏“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺乏“结对及互评”的不能打开的不加分
- 缺乏“上周考试错题总结”的不能加分
- 缺乏“进度条”的不能加分
- 缺乏“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分git
代码调试中的问题和解决过程, 一个问题加1分正则表达式
- 本周有效代码超过300分行的(加2分)
- 其余加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进状况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深刻的加1分
- 扣分:
点评过的同窗博客和代码
点评过的同窗博客和代码
其余(感悟、思考等,可选)
- 前几章大量的敲代码工做让同窗们的学习都留于形式,只想着完成做业而对代码的理解少之又少,感受学好java的方法不是“敲”代码,而是“修改”代码,敲好代码之后若是不理解代码的能,能够经过修改代码来具体体会其真正含义。
- 进步来源于发现问题和解决问题,若是你们不去主动思考,简单机械的完成做业,那学习便失去了意义。
学习进度条
目标 |
5000行 |
30篇 |
400小时 |
|
第一周 |
48/48 |
1/1 |
20/20 |
|
第二周 |
98/146 |
1/2 |
30/50 |
学习java的基础语法 |
第三周 |
302/448 |
1/3 |
27/77 |
学习java对象及封装 |
第四周 |
1032/1480 |
1/4 |
36/113 |
学习了继承与多态的关系,以及接口的多态操做 |
第五周 |
609/2025 |
1/5 |
30/143 |
学习了异常处理和Map |
第六周 |
672/2697 |
1/6 |
30/173 |
学习了IO和线程 |
第七周 |
532/3229 |
1/7 |
27/200 |
对Lambda和Date的学习 |
第八周 |
359/3588 |
1/8 |
20/220 |
学习了NIO和通用API |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。api
参考:软件工程软件的估计为何这么难,软件工程 估计方法数组
计划学习时间:35小时架构
实际学习时间:30小时学习
改进状况:.net
有空多看看现代软件工程课件 软件工程师能力自我评价表)线程
参考资料