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

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

教材学习内容总结

1、集合是一种对象,类似于保存其他对象的存储库

- 集合的同构意味着这种集合保存类型全部相同的对象;异构意味着可以保存各种类型的对象

2、抽象数据类型(ADT)是由数据和在该数据上所实施的具体操作构成的集合。

- ADT有名称、值域和一组允许执行的操作

- ADT上可以执行的操作与底层的实现分离开了

3、一个动态数据结构用链来实现,动态数据结构的大小规模随需要增长和收缩

4、线性数据结构

- 队列:类似于列表,队列的元素存取方式有限,是一种以先进先出方式管理数据的线性数据结构

- 堆栈:一种以后进先出方式管理数据的线性数据结构

5、非线性数据结构

- 树:树是一个非线性数据结构,由一个根节点和构成层次结构的多个节点组成。除根节点外的所有节点称为内部节点,没有子节点的节点称为叶节点。根节点在顶层,叶节点在底层。二叉树和树的操作有所不同

- 图:没有类似于树根节点那样的初始入口点。一个节点到另一个节点的连接称为边,连接一个图内各节点的边数一般没有限制

6、Java集合类API:定义了几种表示不同类型集合的类

- 泛型:Java集合类ARI中的类定义为泛型,指一个集合所管理的对象的类型要在实例化该集合对象时才确定,泛型保证了集合中对象类型的兼容性

教材中遇到的问题和解决过程‘

  • 问题1:队列和堆栈?
  • 问题1解决方案:
  • 队列:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表

    (1)允许删除的一端称为队头

    (2)允许插入的一端称为队尾

    (3)当队列中没有元素时称为空队列

  • 堆栈:限制仅在表的一端进行插入和删除运算的线性表

    (1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。

    (2)当表中没有元素时称为空栈

  • 作用:堆栈:1.用于符号匹配

    2.用于计算代数式

    3.构造表达式

    4.用于函数调用

    (2、3可以用二叉树来解决)

  • 相同点:1.都是线性结构。

    2.插入操作都是限定在表尾进行。

    3.都可以通过顺序结构和链式结构实现。

    4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。

    5.多链栈和多链队列的管理模式可以相同。

  • 不同点:1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。

    2.应用场景不同;常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。

    3.顺序栈能够实现多栈空间共享,而顺序队列不能。

  • 问题2:泛型的理解
  • 问题2解决方案:

    本质:为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中

    例子:见参考链接

    特性:泛型只在编译阶段有效

    使用:- 泛型类:用于类的定义中,通过泛型可以完成对一组类的操作对外开放相同的接口

    - 泛型接口:与泛型类的定义及使用基本相同,泛型接口常被用在各种类的生产器中

    - 泛型方式

    优点:- 把运行时期的问题提前到了编译期间

    - 避免了强制类型转换

    - 优化了程序设计,解决了黄色警告线问题,让程序更安全

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

上周考试错题总结

  • What does the following method compute? Assume the method is called initially with i = 0

    public int question9(String a, char b, int i)

    {

    if (i = = a.length( )) return 0;

    else if (b = = a.charAt(i)) return question9(a, b, i+1) + 1;

    else return question9(a, b, i+1);

    }

    A .the length of String a

    B .the length of String a concatenated with char b

    C .the number of times char b appears in String a

    D .returns 1 if char b appears in String a at least once, and 0 otherwise

    E .the char which appears at location i in String a

    分析:该方法将字符串a中的每个字符与char b进行比较,直到i到达字符串a的长度。1被添加到每个匹配的返回值中。

  • A recursive algorithm is superior to an iterative algorithm along which of the following criteria?

    A .The recursive algorithm is easier to debug

    B .The recursive algorithm is computationally more efficient

    C .The recursive algorithm is more elegant

    D .The recursive algorithm requires less memory to execute

    E .all of the above

    分析:为了简单起见,数学通常递归地定义函数

  • The difference between direct and indirect recursion is

    A .direct recursion occurs when a method invokes itself; indirect recursion occurs when there is an intervening method

    B .indirect recursion occurs when a method invokes itself; direct recursion occurs when there is an intervening method

    C .direct recursion only occurs with methods declared to be private; indirect recursion can occur with methods declared to be private, protected, or public

    D .indirect recursion only occurs with methods declared to be private; direct recursion can occur with methods declared to be private, protected, or public

    E .none of the above

    分析:直接递归意味着方法直接调用自己,而不使用中介方法。当再次调用原始方法之前有一个或多个中介方法时,就会发生间接递归。

    结对及互评

点评过的同学博客和代码

  • 本周结对学习情况

    20172327

    20172317

  • 结对学习内容

    ?教材第11,12章

    ?阅读11.1-11.6、12.1-12.3章节

    ?完成课后自测题,并参考答案学习

    ?完成课后练习题

    ?完成程序设计项目:至少完成PP11.1、PP11.2、PP12.1、PP12.9

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 67/67 1/4 20/20
第二周 328/395 1/5 20/40
第三周 523/851 1/6 20/60
第四周 1070/1921 1/7 20/80
第五周 608/2529 1/8 10/90
第六周 608/2899 1/9 20/110
第七周 429/3328 1/10 20/130
第八周 804/4131 1/11 20/150
第九周 521/4652 1/12 20/170
第十周 600/5252 1/13 20/190

参考资料

原文地址:https://www.cnblogs.com/garolwz/p/9063561.html

时间: 2024-11-07 08:19:02

20172320 2017-2018-2 《Java程序设计》第十周学习总结的相关文章

20145311 《Java程序设计》第九周学习总结

20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connectivity)是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性. 厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: ·Type 1:JDBC-ODBC Bridge Driver·Type 2:Native API

20165329 《Java程序设计》第九周学习总结

20165329 <Java程序设计>第九周学习总结 教材学习内容总结 第十二章 URL类 构造方法1 try { URL url = new URL("http://www.google.com"); } catch(MalformedURLException e) { System.out.println("Bad URL:"+url); } 构造方法2:用public URL(String protocol,String host,String f

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程

20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不需接触底层数据库驱动程序的差异性. 本章,我们需要了解JDBC与API使用和概念,我们先要认识应用程序如何与数据库进行沟通,数据库本身是一种独立运行的应用程旭,程序员撰写的应用程序是利用通信协议对数据库进行指令交换,以进行数据的增加删除以及查找. 通常应用程序会利用一组专门与数据库进行通信协议的链接库,以简化

20145326《Java程序设计》第二周学习总结

20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对象支持语法的探讨前,对于类型.变量.运算符.流程控制等,这些各种程序语言都会有的基本语法元素,还是要有一定的基础.虽然各种程序语言都有这些基本语法元素,但千万别因此而轻忽它们,因为各种程序语言都有其诞生的宗旨与演化过程,对这些基本语法元素,也就会有其独有的特性. 1. 类型 在java的世界中,并非每个东西都

20145201 《Java程序设计》第一周学习总结(修改)

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145238-荆玉茗 《Java程序设计》第一周学习总结

20145238 <Java程序设计>第一周学习总结 教材学习内容总结 Java三大平台:由于java领域的应用越来越广,根据不同级别的应用开发区分了不同的应用版本,后正式更名为Java SE,Java EE,Java ME. Java SE主要分为四个部分:JVM,JRE,JDK和JAVA语言. 了解JCP与JSR.RI.TCK的关系:JSR必须经过JCP投票通过才能成为最终的标准文件,JSR成为最终文件后对其成果做出免费且开发原始码的参考实现,称为RI,由TCK作为技术兼容测试工具箱. 了