20155223 2016-2017-2 《Java程序设计》第8周学习总结
教材学习内容总结
第14章
- Channel是Java NIO用来衔接数据节点的功能,可定义缓冲区容量、标记内容。对于缓冲区的被标记内容,Channel提供clear()、rewind()、flip()、compact()等高级方法来给用户进行操作。
- Channel类定义了静态方法newChannel(),可以在InputStream和OutputStream分别建立ReadableByteChannel和WritableByteChannel;当然,有些I/O实例本身就可以取得Channel实例。
- Buffer的直接子类都有allocate()静态方法,可以供用户指定Buffer的容量。
- Buffer的容量可以经由capacity()方法获得,用户装填的数据不会超过超过容量。
- 实际可读取或写入的数据边界索引值可有limit()方法获取或定义。
- NIO2文件系统API提供一组标准接口与类,开发人员只要基于这些标准接口与类进行文件系统操作,而底层文件的操作由厂商负责。
第15章
- java.util.logging包提供了日志功能想换类与接口,不需额外配置日志组件。
- getlogger()调用时,必须指定Logger实例所属名称空间,名称空间以“.”作为层级区分;名称空间层级相同的Logger,其父Logger组态相同。
- 调用log()方法,系统首先会从Level过滤信息,再看Logger有无Filter接口实例。
- Logger组态通过logging.properties来设定,启动JVM时,指定java.util.logging.config.file系统属性为.properties名称。
- 应用程序根据不同地区用户,呈现不同语言、日期格式等成为本地化。
- 若应用程序设计时,可以在不修改程序的前提下自动根据不同用户直接采用不同语言、日期格式等成为国际化。
- 国际化的重要概念是地区信息、资源包与基础名称。
- 获取信息文档的途径:使用指定的Locale对象获取、使用Locale.getDefault()取得的对象获取、使用基础名称获取。
正则表达式(规则表达式)
- 正则表达式和正则二叉树毫无联系(我还以为这是用来计算的)。
- 正则表达式用于查找\替换目标字符。
- Windows系统下和Linux系统下的正则表达式启动方式有所不同。
- 可以肯定,我电脑上的任意含有“编译/编辑”功能的程序都有正则引擎。
教材学习中的问题和解决过程
- 问题1:同时开启虚拟机和非虚拟机程序会引起电脑的不定时死机。
- 问题1解决方案:最初的想法是宿主机有病毒,遂杀毒,但是此举只是拖延了死机的到来。
后来认为,同时启动虚拟机和宿主机的程序会引起程序间的内存抢占竞争,遂强制关闭部分后台程序。但是还是会在宿主机和虚拟机同时有上网的行为后出现死机。
已经请教高手,正在等待答复。
代码调试中的问题和解决过程
- Null
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1及原因,理解情况
A method that has multiple definitions is an __________________ method(具有多重定义的方法称为方法___).
A .
overloaded(重载)
B .
overridden(重写)
C .
overlooked(忽略)
D .
overclocked(超频)
E .
none of the above(以上均不是)
正确:A;我选:B
原因:将overriden与override混淆。 - 错题2及原因,理解情况
What is the output of the following code?(下面代码的运行结果是?)
LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
System.out.println(date.getYear() + " " + date.getMonth() - " "+ date.getDayOfMonth());
A .
2018 APRIL 4
B .
2018 APRIL 30
C .
2018 MAY 10
D .
Another date
E .
The code does not compile.
F .
A runtime exception is thrown.
正确:F;我选:C
原因:误认为Java会自动将多余天数计入下一月。
结对及互评
评分标准
- 正确使用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小时 | |
第一周 | 27/27 | 1/1 | 18/18 | |
第二周 | 57/97 | 1/2 | 24/42 | |
第三周 | 220/284 | 1/3 | 36/78 | 函数封装还学不会 |
第四周 | 408/692 | 1/4 | 44/122 | 知道怎么封装函数了;分得清继承和接口。 |
第五周 | 410/1102 | 1/5 | 40/162 | 没什么好疑惑的 |
第六周 | 390/1492 | 1/6 | 27/189 | |
第七周 | 437/1929 | 2/8 | 38/228 | 我就知道Java不能调用中国农历,LOL! |
第八周 | 305/2234 | 1/9 | 19/247 | 专注搞社团活动,抽不出太多时间写代码。 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:35小时
实际学习时间:19小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)