20172330 2017-2018-1 《程序设计与数据结构》第九周学习总结

教材学习内容总结

本周的学习包括两章内容,分别为异常和递归。

异常

  • 错误和异常都是对象,代表非正常情况或者无效处理。
  • 异常抛出时所输出的信息,提供了方法调用堆栈踪迹。
  • 每一个catch子句处理一种try语句块中抛出的异常。
  • 无论try语句块正常退出还是又是抛出异常而退出,都将执行finally子句。

    https://www.ibm.com/developerworks/cn/java/j-lo-finally/index.html)
  • 如果在一个机场的发生处没有捕获和处理该异常,则该异常将传递给上级调用方法。
  • 程序员应该细心地考虑处理异常的时机和位置,否则最好不要做异常处理。
  • 可由Exception类或他的后代类派生一个新类来定义一个新的异常。
  • 流是一个有序的字节序列,它可以以用作输入源或作为输出目标。

递归

  • 递归是一种方法能够调用自己的编程技术,掌握递归编程的关键是能以递归的思想考虑问题。
  • 任何一个递归定义中必须称为基本情况的非递归定义部分,才能使递归最终结束。
  • 每一次对方法的递归调用,都会创建新的局部变量与参数。
  • 详细的跟踪递归处理过程,可以深入剖析递归问题求解问题的方式。
  • 汉诺塔解法具有指数复杂性,效率非常低,但是该接发的实现却出奇的简短和精炼。

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

  • 问题1:IO的理解。

  • 问题1解决方案:如书上所说,Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

    下附Java中IO流的所有类



    IO流还有许多东西需要去慢慢学习,对于很多方面都有概括的。

  • 《Java中IO总结》

  • 问题2: 递归与迭代的比较

  • 问题2解决方案:对于某些问题,递归是最精炼和适当的解法,但对于其他的问题,递归则不如迭代解法直观。

    递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.

//这是递归
int funcA(int n)
{
if(n > 1)
return n+funcA(n-1);
else
return 1;
}
//这是迭代
int funcB(int n)
{
int i,s=0;
for(i=1;i<n;i++)
s+=i;
return s;
}

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

  • 问题1:在做pp11.1的时候,无论我输入多长的字符串他都显示超过
  • 问题1解决方案:当时反复检查代码觉得并没有问题啊,然后使用了代码调试一步步进行下去发现由于在if语句后加了一个;,导致throw语句一直能够进行,所以才会一直出现显示超出的提示。



代码托管

上周考试错题总结

  • 问题1:We compare sorting algorithms by examining

    A the number of instructions executed by the sorting algorithm

    B the number of instructions in the algorithm itself (its length)

    C the types of loops used in the sorting algorithm

    D the amount of memory space required by the algorithm

    E whether the resulting array is completely sorted or only partially sorted

    分析:这道题考到的知识点为:不同的排序算法在执行时需要不同数量的指令。所以我们通过检查排序算法执行的指令数,来比较排序算法。所以应该选a。

  • 问题2:Polymorphism is achieved by

    A . overloading(重载)

    B . overriding(重写)

    C . embedding(嵌入)

    D . abstraction(抽象)

    E . encapsulation(封装)

    分析:这道题考查的是多态性是通过什么实现,我选择的是的抽象,而答案是b重写:重写提供了多态性,因为适当的方法是根据当前被引用的对象而调用的,所以应该是重写实现多态性。

结对及互评

点评模板:

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

    • 严域俊同学在进行异常和错误的区别时进行了详细的描述并配了图
    • 同时在根据自己代码中出现的问题又一次进行了查询和解答。
  • 代码中值得学习的或问题:
    • 这周我两就四则运算的最后结合部分进行了修改,但还是存在很多问题,我两也在不断地学习与探索过程中学到了很多,也希望能够按时完成四则运算吧。
    • commit依旧很详细,有条理性。

点评过的同学博客和代码

  • 本周结对学习情况

    • 20172333
    • 结对学习内容
      • 学习第十一和十二章pp项目。
      • 学习异常和递归的具体内容
      • 对于IO操作的共同探讨
      • 继续完善四则运算的的项目。

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

这一周在做课后项目时问题不大,但是在做是四则运算的编写时遇到了很多问题,需要继续努力研究。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 180/180 2/2 20/25
第二周 312/414 2/4 20/45
第三周 557/971 1/5 25/70
第四周 1217/2242 2/7 44/114
第五周 734/2976 1/8 24/138
第六周 523/3509 1/9 20/158
第七周 697/4206 1/10 24/182
第八周 1118/5324 3/13 30/212
第九周 656/5980 2/15 20/232

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

  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:

这周对于课后练习做的没有那么吃力,但还是存在一些对于类的编写的问题,希望继续加油。

参考资料

20172330 2017-2018-1 《Java程序设计》第九周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第九周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...

  2. 20145220java程序设计第九周学习总结

    20145220java程序设计第九周学习总结 教材学习内容总结 JBDC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商对接口直接操作,开发人员无须接触底层数据可驱动程序的差异 ...

  3. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  4. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  5. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 马凯军201771010116《面向对象与程序设计Java》第九周学习总结

    一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3 ...

  9. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  10. 《Java》第九周学习总结

    下载mysql 选择mysql的管理软件 idea可以直接连接 然后用库运行程序,但是没有截图,,因为想在navicat上试试,可惜速度太慢了 打开idea又很慢,所以明天再更新

随机推荐

  1. Dubbo 安装ZooKeeper环境

    一.在Windows 安装ZooKeeper 1.下载ZooKeeper 2.解压,修改ZooKeeper配置文件 复制一份zoo_sample.cfg文件,改名位zoo.cfg,打开编辑,设置数据保 ...

  2. Java实现“睡排序”——线程池Executors的使用

    前提 之前在知乎上看见一个有意思的排序算法——睡排序. 睡排序最早好像是4chan上一个用户用shell脚本实现的: 算法思想简洁明了:利用进程的sleep来实现 越大的数字越迟输出. 虽然像2L说的 ...

  3. Python安装及简介

    Python简介 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  4. Java学习笔记二十一:Java面向对象的三大特性之继承

    Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...

  5. 解决brew下载php(不存在libphp7.so)

    我是一名PHP的初学者,在mac上安装php7参考作者 coolma <在mac中如何安装php7>: 1. 安装Homebrew(mac ox不可或缺套件管理器,方便快捷的安装插件等) ...

  6. vs2013工程配置

    1. 目标文件生成路径配置: 直接改在工程同级目录下 x64\debug目录下: 2. 调试工程路径配置: 命令-----参照物为工程 工作目录----参照物为运行程序 3.  拷贝工程: bat的写 ...

  7. linux 网络编程 3---(io多路复用,tcp并发)

    1,io模型: 阻塞io.非阻塞io.io多路复用,信号驱动io. 阻塞Io与非阻塞io的转换,可用fcntl()函数 #include<unistd.h> #include<fcn ...

  8. BZOJ1303_中位数图_KEY

    题目传送门 较水,开两个桶即可. 题目可以理解为,将大于B的数看为1,小于B的数看为-1,将以B这个数为中位数的序列左右分为两半,加起来为0. code: #include <cstdio> ...

  9. python字符串格式化符号及转移字符含义

    博文出自鱼C论坛文章 http://bbs.fishc.com/thread-39140-1-1.html

  10. Android UI控件:TextView

    TextVIew的属性详解 android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/ma ...