20172319 《Java程序设计教程》 第10周学习总结

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不会捕获从其内部抛出的异常。
    返回目录

结对及互评

点评过的同学博客和代码

返回目录


其他(感悟、思考等,可选)

返回目录


学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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

返回目录


参考资料

《Java程序设计与数据结构教程(第二版)》
《Java程序设计与数据结构教程(第二版)》学习指导

返回目录

猜你喜欢

转载自www.cnblogs.com/Tangcaiming/p/9064368.html