20172319 2018.05.09-05.21
《Java程序设计教程》第10周学习总结
目录
教材学习内容总结
第十三章 集合:
- 13.1 集合与数据结构:
- 13.1.1 集合的同构与异构:
- 13.1.2 分离接口与实现:
- 13.2 数据结构的动态表示:
- 13.2.1 动态结构:
- 13.2.2 动态链接的列表:
- 13.2.3 其他的动态列表:
- 13.3 线性数据结构:
- 13.3.1 队列:
- 13.3.2 堆栈:
- 13.4 非线性数据结构:
- 13.4.1 树:
- 13.4.2 图:
- 13.5 java集合类API:
- 13.5.1 树:
异常: 程序中出现的问题或非正常情况;
一个异常是一个定义非正常情况或错误的对象;
错误类似于异常,但其代表不可恢复的问题且必须被捕获处理;
一个抛出异常可用3种方法处理:
1.根本不处理异常(忽略异常)——可能导致程序终止;
2.当异常发生时处理异常(使用try语句);
3.在程序的某个位置集中处理异常(捕获异常后,在方法调用层次的更高层处理该异常);
- 11.2 未捕获的异常:
Exception in thread "main"java.lang.ArithmeticException: / by zero
at week9.Zero.main(Zero.java:17)
第一行(表示异常输出信息):何种异常;出现该异常的原因。
其他行(方法调用堆栈踪迹信息):异常在何处发生;
通过调用抛出异常类的方法,也可获取调用堆栈踪迹信息。(getMessage
方法:返回一个字符串,解释异常抛出的原因;printStackTrace
方法:输出调用堆栈踪迹信息)
- 11.3 try-catch语句:
try
{
//需要被检测的异常代码
}
catch(a Exception)
{
//相应的异常处理,即处理异常代码
}
catch(b Exception)
{
//相应的异常处理,即处理异常代码
}
catch(c Exception)
{
//相应的异常处理,即处理异常代码
}
...
finally
{
//一定会被执行的代码
}
若try中有异常抛出,则转到相应的catch子句中进行相应的异常处理。
- 11.4 异常的传递:
在异常的发生处没有捕获和处理该异常,则将传递给上级调用方法 - 11.5 异常类结构层次:
- 11.5.1 自定义异常:
从Exception类或其后代类派生一个新类,定义自己的异常。选择何种父类由新异常所代表的问题和条件决定。 - 11.5.2 可检测异常与不可检测异常:
可检测异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。一旦发生这种异常状况,就必须采取某种方式进行处理。
除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可检测异常。这种异常 的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
不可检测异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。 - 11.6 I/O异常:
标准I/O流 | 说明 |
---|---|
System。in | 标准输入流 |
System。out | 标准输出流 |
System。err | 标准错误流(输出错误信息) |
(注:表格中的字符会自动产生链接,因此用。而不是.)
第十二章 递归:
- 12.1 递归思想:
方法调用自己本身 - 12.1.1 无穷递归:
非递归定义:基本情况。任何递归定义中必须有非递归定义的部分才能使其最终结束,否则将会产生无穷递归。
- 12.1.2 数学中的递归运算:
数学公式与数学函数。eg:n! - 12.2 递归编程:
- 12.2.1 递归与迭代的比较:
所有的问题都可以用迭代解决,但有些时候递归比迭代更方便。 - 12.2.2 直接递归与间接递归:
直接递归:方法调用自己。
间接递归:方法调用其他方法,最终导致再次调用自己。 - 12.3 递归的应用:
- 12.3.1 迷宫旅行
- 12.3.2 汉诺塔问题
教材学习中的问题和解决过程
- 问题1:
- 解决:
代码调试中的问题和解决过程
- 问题1:
- 解决:
代码托管
上周考试错题总结
- 错题1:
- 理解:检查的异常必须被捕获,否则必须在抛出子句中列出。未经检查的异常不需要抛出子句。这两种异常都遵循异常传递的规则。
- 错题2:
- 理解:catch不会捕获从其内部抛出的异常。
返回目录
结对及互评
点评过的同学博客和代码
- 本周结对学习情况:
- 20172316赵乾宸
- 博客中值得学习的或存在问题:
- 20172329王文彬
- 博客中值得学习的或存在问题:
- 20172316赵乾宸
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 202/202 | 1/2 | 15/15 | 积极主动敲代码 |
第二周 | 490/692 | 1/3 | 18/33 | 善于思考 |
第三周 | 581/1273 | 1/4 | 15/48 | 善于完善 |
第四周 | 1857/3130 | 1/6 | 33/81 | 累 |
第五周 | 655/3787 | 1/7 | 22/103 | |
第六周 | 531/4318 | 1/8 | 18/121 | |
第七周 | 810/5128 | 1/9 | 23/ 144 | |
第八周 | 698/5826 | 1/13 | 21/ 165 | |
第九周 | 756/6582 | 1/15 | 54/ 219 | |
第十周 | 1/16 | 56/ 275 |