20172325 2017-2018-2 《Java程序设计》第十周学习总结

时间:2022-04-05 22:13:07

20172325 2017-2018-2 《Java程序设计》第十周学习总结

教材学习内容总结

1.集合与数据结构

  • 集合是一种对象
  • 集合按照保存类型来看可以分为两种:
    (1)同构集合:只能保存类型全部相同的对象;
    (2)异构集合:可以保存各种类型的对象。

2.分离接口与实现

  • 集合可以用各种方式实现
  • ADT:是由数据和在该数据上所实施的具体操作构成的集合,一个ADT有名称、值域和一组允许执行的操作。
  • 集合和抽象数据类型可以互换的等同概念。

3.数据结构的动态表示

  • ArrayList类解决可变大小数组问题的方法是创建一个更大的数组并将原有的数据复制到新数组里,但这种方法未必是最高效的。
  • 一个动态数据结构用链来实现。利用对象引用作为连接对象间的链。
  • 动态数据结构的大小规模需要增长和收缩。

4.线性数据结构
1、队列:类似于列表,但是在存取方式上有所不同,是一种先进先出方式管理数据的线形数据结构;
2、堆栈:也类似于列表和队列,但是是一种以后进先出方式管理数据的线形数据结构;

5.非线性结构
1、树:是一种以层次结构组织数据的非线性数据结构;
2、图:是非线性数据结构,使用常见的边来连接节点;

6.Java集合类API。

  • Java标准类库中定义了几种表示不同类型集合的类,常称为Java集合类API。
  • 泛型:一个集合所管理的对象的类型要在实例化该集合对象时才确定。
  • 集合所能存放的对象与继承关系有关。
    20172325 2017-2018-2 《Java程序设计》第十周学习总结

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

  • 问题1:对于集合和数组关系理解得不是很清楚
  • 问题1解决方案:
    数组特点:大小固定,只能存储相同数据类型的数据
    集合特点:大小可动态扩展,可以存储各种类型的数据
    虽然存在不同,但是二者之间可以实现转换20172325 2017-2018-2 《Java程序设计》第十周学习总结

  • 问题2:紧接着问题一,既然集合可动态扩展,但是课本上说道她不是一种高效的实现数据结构动态表示的方法,也就是说不能用集合实现,这又是因为什么呢?
  • 问题2解决方案:参考下列博客
    20172325 2017-2018-2 《Java程序设计》第十周学习总结

就是说,按照链来实现的话就能够达到动态的实践,根据需要增长和收缩,而集合时通过在静态时的声明来达到的,每次改变的储存空间相同,没有体现出动态这个概念。

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

本周代码与之前的内容有相似,没有遇到太大问题。

代码托管

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

上周考试错题总结

  • 错题1:20172325 2017-2018-2 《Java程序设计》第十周学习总结
  • 解析:调用堆栈跟踪提供了存储在运行时堆栈上的方法的名称。方法名称从堆栈中删除以相反的顺序放置,也就是说,最早的方法是先放在这里,下一个方法其次,等等,所以最近调用的方法是在堆栈上最后一项,这是第一个删除。然后堆栈跟踪显示所有的活动方法,它们被称为(最近的第一次)。
  • 错题2:20172325 2017-2018-2 《Java程序设计》第十周学习总结
  • 解析:数据流表示特定的源或目标流,用于输入或输出。处理流就像一个数据流,其中添加了一些额外的进程(is),添加到输入或输出中。例如,一个处理字节流可以从一个文件中输入所有的项目,并删除任何不是数字的ASCII字符,这样输入的数字将不会抛出NumberFormatException。
  • 错题3:20172325 2017-2018-2 《Java程序设计》第十周学习总结
  • 解析:Java程序的输入很困难,因为它需要大量的开销。扫描器类实现了所有的开销,这样程序员就不必看到它了。因此,扫描器是执行输入操作的抽象,而不需要细节。这些细节包括导入java.IO类,以某种方式处理IOexception,从标准输入流中输入,将输入划分为单个令牌,并根据需要将每个令牌转换为请求形式。
  • 错题4:20172325 2017-2018-2 《Java程序设计》第十周学习总结
  • 解析:异常传播意味着一个异常被匹配的catch子句在当前try块级别,如果没有匹配,然后在下一个封闭try块级别,等等,直到异常已经被匹配的条款或异常的主程序和被Java虚拟机。

结对及互评

  • 博客中值得学习的或问题:

  • 代码中值得学习的或问题:

  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172306
    • 结对学习内容
      我们一起学习了第十三章的内容。
      继续了四则运算的项目,将项目完善。
      进行了蓝墨云的实验。- 上周博客互评情况(只要链接,具体点评放相应博客下)

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

课本的第一遍学习已经完成,但是由于进度等问题,对于很对知识的理解和运用都不是很清楚,所以还需要回头去重新查缺补漏,希望能够在复习中发现问题解决问题,提高自己对java的掌握力度。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

参考资料