29162309《程序设计与数据结构》第八周学习总结

学号 20162309《程序设计与数据结构》第8周学习总结

教材学习内容总结

第十章学习的是java中的异常,首先要明确一个异常是一个对象的这一基本概念,本章的主要内容是当java编译过程中出现异常和错误时对错误进行排查和修正,以及分析异常及错误出现的原因。首先需要了解的是几种常见的异常类型,并掌握其对应的解决方法,在发现问题中找到解决问题的办法。判断异常原因,其中异常的输出结果就显得比较重要了,异常结果的输出语句往往代表着这一个程序的错误原因、错误位置,第一行即是异常的性质及原因,而后面的内容则联系到了一个新的概念,即调用栈跟踪,起判断位置的作用,理解其中信息的含义,并对错误进行修复,是完善编译的有效途径。
在知道异常产生的位置和原因后,需要的是解决异常,第十章的后面的内容即详细地讲解了几种修正错误的方法,包括需要执行的语法及命令。同时,异常的类同样有层次,UML类图就会对异常的处理起到一个很好的作用,这也能判断异常的传播途径。

教材学习中的问题和解决过程

  • 问题:关于I/O异常的问题。在I/O流中,是否三种I/O流与I/O异常有什么关系?I/O异常是不是只是指在java编译时in和out产生的错误?同时java.io的含义包括具体作用是什么?

  • 问题解决方案:在网上查阅资料,首先确定I/O类的异常必须被捕获,且除了三个I/O流,java.io包为程序提供了全面的IO接口,在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。在input和out的过程中时常伴随错误的出现,这就产生了I/O异常。同时,JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类。

  • ...

代码调试中的问题和解决过程

  • 问题:关于程序10.2ProductCodes,编译时正常,但运行时出现报错现象,同时没有理解10.2的代码含义和运行机制,同时两个catch语句的作用没有明晰。

  • 问题解决方案:
    程序10.2的运行规则是当编译完成后,输入对应的产品代码,并继续完成以后的步骤。在抛出异常后,控制需要立即转向对应的catch处理器,StringIndexOutOfBoundsException异常就由第一个catch语句进行处理,而catch前面的if语句是在两个异常还没有抛出时的检查语句。

  • ...

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题1
    The commitment to execute certain code to carry out a method invocation is referred to as _____________(通过提交来执行确定的代码从而完成方法的调用,被称为).
    A
    .
    execution(执行)
    B
    .
    binding(绑定)
    C
    .
    polymorphism(多态)
    D
    .
    inheritance(继承)
    E
    .
    none of the above(以上都不正确)

解析:Binding refers to the commitment to execute certain code to carry out a method invocation.

  • 错题2
    In Java, polymorphic method binding occurs ____________________ (在Java中,多态方法的绑定发生在____).
    A
    .
    at run time(运行时)
    B
    .
    at compile time(编译时)
    C
    .
    never(不发生)
    D
    .
    when a programmer writes the code(当程序员编写代码时)
    E
    .
    during the testing phase of software development(在软件开发的测试阶段期间)

解析:polymorphic method binding occurs at run-time.

错题:
Let Object a be larger than Object b.  What will the following method call return?(假设对象a大于对象b.下面的方法将返回什么?)
a.compareTo(b)
A
.
it will return 0(返回0)
B
.
it will return a number greater than 0(返回一个大于0的数)
C
.
it will return a number less than 0(返回一个小于0的数)
D
.
it will return true(返回true)
E
.
it will return false(返回false)

解析:The compareTo method returns an integer.  If Object a is bigger than Object b, it will return a number greater than 0.If Object a is less than Object b, it will return a number less than 0.  If they are equal it return 0.

  • ...

结对及互评

本周没有实验课,学习内容为教材上的第十章,通过和20162313苑洪铭同学进行交流和共同学习,我对异常中的语句执行和异常的继承传播有了更加深入地理解,其中比较值得注意的一点是finally语句的执行次序。

点评过的同学博客和代码

http://www.cnblogs.com/yuanhongming/

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

包括I/O异常在内,整个第十章的内容相对比较抽象,个人感觉没有前几章那么好理解,同时,异常及错误作为java编译过程中的重要的一个成分,掌握异常的解决方法,学会找到异常,辨别异常的种类,快速地修正错误,这是一个学习java的学生需要掌握的技能,同时这也是锻炼逻辑思维和严谨细致的训练,对很多以后的学习上有很大的帮助。例如I/O异常,在教材中涉及到了较多的概念,十分容易混淆,而IO流中,io包内包含了JDK中的各种类流,这是一个新的知识点。
xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第七周 776/776 2/2 26/26
第八周 663/663 1/1 35/35
第九周 0/1000 1/1 00/60
第十周 0/1000 1/1 00/90
  • 计划学习时间:35小时

  • 实际学习时间:35小时

posted @ 2017-04-23 17:49  邢天岳  阅读(242)  评论(4编辑  收藏  举报