20155333 2016-2017-2 《Java程序设计》第五周学习总结
20155333 2016-2017-2 《Java程序设计》第五周学习总结
教材学习内容总结
1、使用try、catch语法
-
与C语言中程序流程和错误处理混在一起不同,Java中把正常流程放try块中,错误(异常)处理放catch块中
-
catch 多个异常
-
API文档中带throws的必须使用try...catch
-
多个catch一定把父类放后面
2、异常架构 -
Error及其子类写程序不用处理,最多留个日志
-
Java异常处理是要处理Exception类及其子类(Checked Exception)
-
RuntimeException及其子类也不用处理(Unchecked Exception)
-
产生RuntimeException的问题在调用代码
3、Multi-catch:类之间不能有继承关系 -
学习Java API时一定对上层的类好好研究,学习,再学习和应用子类时就比较容易了
4、catch or throw? -
throws:自己无法处理,用在方法声明
-
throw:方法中抛出CheckedException,方法声明中必须有throws
5、异常堆栈 -
printStackTrace
-
善用堆栈追踪错误
-
代码中不要私吞异常
-
不要错误处理异常
-
处理时不要显示错误信息
6、使用finally -
try-catch-finally
7、try with resources -
关闭多个资源时用分号分隔
8、java.lang.AutoCloseable -
try with resources的对象必须实现AutoCloseable接口
9、Connection: 增、删、遍历对象 -
add
-
remove
-
clear
-
size
-
iterator
10、List: 类似数组,具有位置信息,带索引 -
核心方法
add(int index, E element)
remove(int index)
set(int index, E element)
-
ArrayList
《数据结构》中的线性表
-
LinkedList
《数据结构》中的链表
11、Set: 其中的对象不能有重复的
12、Queue: 队列 -
核心方法
offer
poll
peek
-
Deque: 双向队列
13、Iterable与Iterator -
Iterator
next
hasNext
14、Comparable与Comparator -
sort:Java中对象排序,要么对象实现了Comparable可以直接sort要么提供Comparator对象告知sort如何排序
15、常用的Map类 -
Map
-
put
-
get
-
size
-
remove
-
forEach
-
HashMap
-
TreeMap
-
Properties:配置文件
16、访问Map键值 -
keySet
-
values
教材学习中的问题和解决过程
问题1. Error 与 Exception 的异同
解决:
- Error与其子类实例代表严重系统错误,例如硬件层面错误、JVM错误或内存不足等问题。
- 程序设计本身的错误,建议使用Exception或其子类实例来表现,所以通常称错误处理为异常处理。
问题2.
代码调试中的问题和解决过程
问题1.
解决
将System.out.println(set);
改为System.out.println(students);
即可解决。
问题2.
解决
缺少import java.util.*;
代码托管
上周考试错题总结
1、使用JDB进行调试时查看源代码的命令是(list)。
2、”Hello”.charAt(1) 的值是(‘e’)。
3、System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”。
- toLowerCase()的作用:将此字符串中所有字符转化为小写。
4、”Hello”.substring( 0,2 )的值是“He”。 - substring()方法用于提取字符串中介与两个制定下表之间的字符。
5、写出编译P165 RPG.java的命令(javac –d . *.java)。 - p165 RPG.java是一个测试函数,需把工作类及测试类的程序全部编译。
6、Java中一个类可以继承多个类。(X)
7、用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。 - enum中列举的常数一般用大写字母表示。
8、XX是一个引用型变量,System.out.println(XX)等价于System.out.println(XX.toString()). (OK)
结对及互评
这周搭档对我的帮助主要是在做周三的练习题时帮我分析、修正代码。在准备计算机二级的考试时相互鼓励,和我共享复习资料和考试经验,帮我解决学习过程中遇到的问题,还经常督促我学Java。
评分标准
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
代码调试中的问题和解决过程, 一个问题加1分
-
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
-
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
-
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
点评模板:
-
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
其他(感悟、思考等,可选)
因为前面几周没有跟上进度的缘故,感觉学习效率并未有所提高,而且越来越跟不上进度,一周学两章对我来说有点困难。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 12/12 | 1/4 | 20/20 | |
第二周 | 64/76 | 1/5 | 22/42 | |
第三周 | 560/636 | 1/6 | 22/64 | |
第四周 | 532/1168 | 1/7 | 20/84 | |
第五周 | 510/1728 | 1/8 | 20/104 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:25小时
-
实际学习时间:20小时
-
改进情况:学习效率并未有显著提高
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)