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

20172319 2018.04.24-05.03

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

目录


教材学习内容总结

第十一章 异常:

  • 11.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:
  • 理解:只要程序实现重载,多态性就得以体现。

返回目录


结对及互评

点评过的同学博客和代码

返回目录


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

返回目录


学习进度条

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

返回目录


参考资料

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

返回目录

猜你喜欢

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