# 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结

时间:2022-09-20 19:16:48

教材学习内容总结

  • 1.异常:当程序中出现不符合计算机逻辑的情况,在编译运行时就会出现异常。Java程序在执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。

  • 2.异常有哪些种类:一般分为Checked异常和Runtime异常,所有RuntimeException类及其子类的实例被称为Runtime异常,不属于该范畴的异常则被称为CheckedException。# 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结

  • 3.Java异常的处理机制:当程序中抛出一个异常后,程序从程序中导致异常的代码处跳出,java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交到catch块中的代码,然后继续往下执行程序,try块中发生异常的代码不会被重新执行。如果没有找到处理该异常的catch块,在所有的finally块代码被执行和当前线程的所属的ThreadGroup的uncaughtException方法被调用后,遇到异常的当前线程被中止。

  • 4.自定义异常: 所有异常都必须是 Throwable 的子类。
    如果希望写一个检查性异常类,则需要继承 Exception 类。
    如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

  • 5.IO流:可以从不同的角度进行分类。

按照数据流的方向不同可以分为:输入流和输出流。

按照处理数据单位不同可以分为:字节流和字符流。

按照实现功能不同可以分为:节点流和处理流。

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

  • 问题1:节点流与处理流的关系及异同
  • 问题1解决方案: 按流的处理位置可分为节点流和处理流
    节点流:可以从或向一个特定的地方(节点)读写数据。
    处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。博客园中一个帖子里举的例子:BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接
  • 问题2: IO流对文件的输入读取中,如何实现读取一个带有文字的文件到另一个文件中。
  • 问题2解决方案:书上写的不是很理解,通过云班课和网上的博客文章加深了了解# 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结
    # 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结

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

  • 问题1:git add . 出现了问题# 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结

  • 问题1解决方案:没有解决,但是并没有影响commit和push

[代码托管]

# 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结
# 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结

上周考试错题总结

    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(继承)

none of the above(以上都不正确) 选C 捆绑是指执行某些代码以执行方法调用的。

    1. Let Dog be a subclass of Animal, and suppose Animal has a method called speak() that is overridden in the Dog class. Consider the following code(假设Dog是Animal的子类,且Animal有一个方法speak(),该方法在Dog类中被重载).

Animal spot = new Dog();
spot.speak();

Which of the following is true? (下面哪项是正确的)
A .
This code will result in a compile-time error. (这段代码会引起编译时错误)
B .
This code will result in a run-time error. (这段代码会引起运行时错误)
C .
The speak method defined in the Animal class will be called. (将会调用Animal类中的speak方法)
D .
The speak method defined in the Dog class will be called. (将会调用Dog类中的speak方法)
E .
The speak method will not be called at all. (不会调用任何speak方法) 选D 在狗这个类中定义的方法将在此类下调用。在运行时,java虚拟机决定指向型狗对象绑定的方法在狗类中使用。

    1. Which of the following methods are included with any object that implements the Iterator interface? (下面哪个方法包含了实现Iterator接口的对象?)
      A .
      next
      B .
      hasNext
      C .
      toString
      D .
      all of the above(以上都正确)
      E .
      a and b(a和b) 选D 迭代器接口指定实施必须有hasNext方法和未来的所有对象。由于java中的所有的对象都是Object类的子类,它还将包括toString方法。
    1. Consider a reference declared in the following manner(思考下面方式声明的一个引用).

Animal a;

This reference may only point to an object that created by instantiating the Animal class(这个引用只能指向一个通过初始化Animal类创建的一个对象).
A .
true
B .
false 此引用可以指向与动物兼容的任何类型的对象。特别是,它可以指向任何对象,它是类的实例,是类的子类。

  • 5.Let Animal be an interface. Then it is possible to create an object by instantiating the Animal interface(假设Animal是一个接口。那么,通过初始化Animal接口创建一个对象是可能的).
    A .
    true
    B .
    false 无法实例化接口。

结对及互评

这个周的学习中春旺同学对我帮助依旧很大,比如我对方法构造不是很理解,看完视频后依旧有很多不懂的地方除了在网上查资料也有很多是在他的帮助下解决的。

点评过的同学博客和代码

这个周只有一节课,而且学习内容并不算太重,所以终于匀出时间把拖了几个周的8000字稿子写了

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 74/74 1/1 20/20
第二周 329/403 1/2 14/34
第三周 269/672 1/3 16/50
第四周 989/1661 2/5 24/74
第五周 623/2284 1/6 12/86
第六周 406/2690 1/7 10/96
第七周 785 /3475 2/9 10/106
第八周 337/3812 1/10 8/114

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:10小时

  • 实际学习时间:8小时

  • 改进情况:改进方法后时间短了很多。

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料