20145313张雪纯 《Java程序设计》第5周学习总结
教材学习内容总结
- JAVA中所有错误都会被打包成对象,可以用尝试(try)捕捉(catch)代表错误的对象后做一些处理。使用try、catch语法,JVM会尝试执行try区块中的程序代码,若发生错误,会跳离错误发生点,比较catch括号中声明的类型,若符合错误类型,则执行catch区块中的程序代码。
- Error与其子类实例代表严重系统错误,JAVA应用本身是无力回复的,基本不用处理,只需留下日志信息。程序设计本身的错误,应使用Exceptionn或其子类实例来表现,通常称错误处理为异常处理。
- 受检异常存在的目的在于API设计者实现某方法时,某些条件成立时会引发错误,并且认为调用方法的客户端有能力解决,要求编译程序提醒客户端必须明确处理错误。
- 如果父类异常对象在子类异常对象之前被捕捉,则catch子类异常对象的区块将永远不会被执行,编译程序会检查出这个错误。
- 在catch区块进行完部分错误处理后,可以使用throw将异常再抛出。编译程序对于重新抛出的异常类型可以更精准地判断。
- 若想得知异常发生的根源以及多重方法调用下异常的堆栈传播,可以利用异常对象自动收集的堆栈追踪来取得相关信息。
- 无论try区块中是否发生异常,若撰写有finally区块,则finally区块一定会被执行。
- 新增对象的add()方法,移除对象的remove()方法,都定义在java.util.Collection中。逐一取得对象的iteartor()方法定义在java.lang.Iterable中。
- 数组在内存中是连续的线性空间,根据索引随机存取时速度快,当需要排序是,使用ArrayList可以使程序速度更快。
- 链接的每个元素会参考下一个元素,有利于调整索引顺序。
教材学习中的问题和解决过程
第八章课后习题8.
public class Main {
public static void main(String[] args) {
try {
int number = Integer.parseInt(args[0]);
System.out.println(number++);
} catch(RuntimeException | NumberFormatException ex) {
System.out.println("必须输入数字");
}
}
}
执行时若没有指定命令行自变量,以下描述何者正确?
A、 编译错误
B、 显示"必须输入数字"
C、 显示ArrayIndexOutOfBoundException堆栈追踪
D、 不显示任何讯息
为什么选择A,而不是B?
代码托管截图
其他
第八章主要说明了代码调试中错误的类型及解决方法,第九章主要说明了数据结构的java实现,可以和数据结构课程相结合。java程序主要是利用定义好的方法实现自己的目的,所以了解相应方法对编程十分重要。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/1 | 20/20 | 编写简单程序 |
第二周 | 350/550 | 1/2 | 30/30 | 用IDE调试修改程序 |
第三周 | 500/1050 | 1/3 | 35/85 | |
第四周 | 500/1550 | 1/4 | 30/115 | |
第五周 | 500/2050 | 1/5 | 30/145 |