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

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

教材学习内容总结

  • 异常

    • 学会了使用try-catch来实现未捕获的异常的处理。可以使得异常被捕获进而不导致程序出现错误退出。使用try写入可能产生异常的语句,使用catch来编写在捕获异常后继续执行的代码(可以为空)。
    • "未捕获的异常"指在编译过程中不会被编译软件显示异常但是在运行时会出现异常导致程序直接退出,例如:“ArithmeticException”、"IndexOutOfBoundException"等。
    • 可以使用finally子句来使得一些命令在try-catch语句中始终被执行。
    • 我们可以在一些异常类的基础上编写自己的异常类----自定义异常。throwsthrow必须同时出现!
  • 递归
    • 递归是指一个方法调用自己。
    • 迷宫问题和汉诺塔问题是递归方法体现的两个例子。
    • 使用递归可以实现与循环相似的一些功能,例如PP12.1就是一个鲜明的例子。

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

  • 本周教材学习问题不多。
  • 问题1:最初对未捕获的异常的命名方式不太理解,它为什么要被成为未捕获的异常呢?该命名的方式是如何命名的?
  • 问题1解决方案:范雯琪给我讲了一下她的理解:所谓未捕获异常可能是指编译工具没有发现的异常,只有在运行时才会抛出错误。我感觉到了豁然贯通。
  • 问题2:关于无穷递归,无穷递归如何实现?它会导致什么样的错误?
  • 问题2解决方案:看到了文章《可怕的无穷递归》有了一些理解,在文章中他给出了一些例子,并且写出了最容易的抛出错误"StackOverflowException".

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

  • 问题1:在做PP11.1和PP11.2时最初并没有实现“直到输入“DONE”为止”这一条件,导致后期加如这一条件时遇到了一些困难,因为最先是使用的while循环来实现这一目标。
  • 问题1解决方案:突然想到break这一个命令,这个命令好像可以直接退出循环。所以就编写了以下代码
    if (value.equals("DONE"))
            break;
  • 问题2:在做PP12.1时,并不知道用递归方法如何实现回文的判断。
  • 问题2解决方案:上网查询了相关的代码,借鉴了文章《使用递归实现回文判断》并且在递归方法后面加上了自己的理解。如图

代码托管

突然发现IDEA居然能统计有效代码,厉害厉害!

上周考试错题总结

  • 错题1及原因:对栈的记忆有些许忘记,忘记了栈的调用方法是什么样的。
  • 理解情况:栈的调用遵循“先进后出,后进先出”的原则,所以说处理的顺序是相反的,并不是正向。
  • 错题2及原因:对catch为空和没有catch理解出现错误,以为两者等同。
  • 理解情况:两者不相等,一个try必须要有至少一个catch与其对应,但是catch的内容可以为空。
  • 错题3及原因:对BufferedReader的使用不理解。
  • 理解情况:浏览博客《关于java中BufferedReader的read()及readLine()方法的使用心得》理解了相关用法

结对及互评(未修改完成)

点评模板:

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

    • 范雯琪同学的博客加上了目录,看起来很厉害耶。
  • 代码中值得学习的或问题:

点评过的同学博客和代码

  • 本周结对学习情况

    • 20172303
    • 结对学习内容
      • 教会范雯琪同学自编写异常,使她对PP项目的问题豁然贯通
      • 在范雯琪同学编写PP项目遇到困难时我积极伸出了援手,使得她对本章她觉得一些难点豁然贯通!
      • 她在编写PP11.1时在没有使用while循环的情况下居然用了break还问我为什么break红了......这个人有点笨
      • 她在编写PP12.1时向我询问了一下代码的具体写法,在对最后递归方法实现的时候不理解,给她解释了一下为什么需要写上一个字符,两个字符和其他,而不是一个字符和其他。

其他

  • 感悟:本周那个王老师布置IO异常处理作业有些难度,虽然自己没有满足所有要求,但是自己还是尽自己所能满足相关基础要求。
  • 思考:下周就要对Android的相关知识进行学习啦,比较激动!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 242/242 1/4 13/13 增加了对Java的兴趣
第二周 297/539 1/5 15/28 发现目标并没有想象中那么难
第三周 315/854 2/7 18/46 突然发觉JAVA的难度不小
第四周 1269/2123 1/8 50/96 Java难到哭,但是有信心击败他!
第五周 737/2860 1/9 30/126 难度的减小激发了学习动力
第六周 542/3402 2/11 20/146 不能说难度变小!!!又难了T T
第七周 956/4357 1/12 35/181 平平淡淡才是真
第八周 2448/6805 3/15 80/261 四则运算花的时间太多了,还好书上例题的代码老师给了
第九周 1284/8089 2/17 70/331 IO异常的处理是真的有点难度
  • 计划学习时间:50小时
  • 实际学习时间:70小时
  • 改进情况:commit的要求继续实施,根据学长对上周博客的建议修改了上周博客,并在本周博客中尽量避免类似问题发生。

参考资料

原文地址:https://www.cnblogs.com/zhangyeye233/p/9033175.html

时间: 2024-11-09 03:43:30

20172322 2017-2018-2 《程序设计与数据结构》第九周学习总结的相关文章

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

一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3.程序中出现的常见的错误和问题有:用户输入错误.设备错误.物理限制.代码错误. 4.Java把程序运行时可能遇到的错误分为两类: (1)非致命异常:通过某种修正后程序还能继续执行.这类错误叫作异常.如:文件不存在.无效的数组下标.空引用.网络断开.打印机脱机.磁盘满等. Java中提供了一种独特的处

《JAVA程序设计》_第九周学习总结

一.学习内容 1.数据库的建立.配置 在官网先下载好MySQL.navicat for MySQL.XAMPP.MySQL-connecter 在XAMPP中点击start开启MySQL 在navicat for MySQL中点击连接,输入信息后确定 在连接名处右击,创建新数据库,输入数据库名,字符集和校对均选择gb2312... 在表处右击,输入表的信息 点开创建的mess表输入信息,按tab键可快速换行 将MySQL-connecter添加到IDEA的module中 输入以下代码,检测数据库

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

学号20172328<程序设计与数据结构>第九周学习总结 教材学习内容总结(异常和递归) 第11章:异常 1.[异常处理]: 一个异常:是一个定义非正式情况或错误的对象,由程序或者运行时环境抛出,可以根据需要捕获和处理. 错误:错误类似于异常,但是错误代表不可恢复的问题并且必须捕获处理. 2.[处理异常的三种方法]:①根本不处理异常②当异常发生时处理异常③在程序的某个位置集中处理异常. 3.[未捕获的异常]:如果程序中不处理异常,则程序将非正常的终止运行,并产生关于描述在何处发生什么异常的信息

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

学号 20172326 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常(exception):定义非正常情况下或错误的情况的对象,由程序或运行时环境抛出,可根据需要进行相应的捕获处理. 异常与错误的区别:错误代表不可恢复的问题并且必须捕获处理.而异常可以忽视,或者使用try语句处理,或调用更高级的方法. 可检测异常与不可检测异常:可检测异常必须由方法捕获,或者必须在可能抛出或传递异常方法的throws子句中列出来.在方法定义的声明头中追加一条throws子句.不可检测异常不需要使

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

20172311 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本周对异常和递归进行了学习 异常的处理方式有两种:一种是直接抛出,并从异常处终止程序:另一种是捕获并处理异常,从而使程序继续运行. 捕获和处理异常主要运用try-catch语句. 通过继承Exception类可以自定义一个新的异常 处理IO异常的常用方法是抛出异常. 对于某些问题,递归是最精炼和适当的解法,但对于其他问题,递归则不如迭代方法直接. 教材学习中的问题和解决过程 问题:什么是IO操作

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

20172327 2018-2019-1 <程序设计与数据结构>第九周学习总结 教材学习内容总结 第十五章 图 无向图 1.图的概念(非线性结构):允许树中每个结点与多个结点相连,不分父子结点. 2.图由顶点和边组成. 顶点由名字或标号来表示,如:A.B.C.D: 边由连接的定点对来表示,如:(A,B),(C,D),表示两顶点之间有一条边. 3.无向图:顶点之间无序连接. 如:边(A,B)意味着A与B之间的连接是双向的,与(B,A)的含义一样. 4.邻接(邻居):两个顶点之间有边连接. 5.自

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

学号 20172326 <程序设计与数据结构>第九周学习总结 教材学习内容总结 图:图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的.与树的区别在于树中的一个结点只有一个前驱,也就是说只有一个父结点.但图中的顶点(结点)是没有这种限制关系的. 无向图:边为无需结点对的图.也就是说,现有两个顶点A.B.(A,B)与(B,A)效果相同.当两个顶点之间有边连接,也就是说这两个顶点是邻接的,也称作邻居.一个顶点

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

20172333 2018-2019-1 <程序设计与数据结构>第九周学习总结 教材学习内容总结 <Java软件结构与数据结构>第十五章-图 一.无向图 ①无向图的定义 图是由结点与结点相连接构成的,与树类似.这些结点被常常称作顶点(vertice),这些顶点的连接叫做边(edge). 无向图(undirected graph)是一种边为无序结点对的图. 两个顶点之间有一条连通边的顶点,我们称作它们为领接的(adjacent).这两个顶点也叫作邻居(neighbor),自己是自己的

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

2017-2018-20172309 <程序设计与数据结构>第九周学习总结 一.教材学习内容总结 一些概念: 图: 是一种复杂的非线性数据结构. 图的二元组定义: 图 G 由两个集合 V 和 E 组成,记为: G=(V, E) 其中: V 是顶点的有穷非空集合, E 是 V 中顶点偶对(称为边)的有穷集. 通常,也将图 G 的顶点集和边集分别记为 V(G) 和 E(G) . E(G) 可以是空集.若 E(G) 为空,则图 G 只有顶点而没有边. 有向图: 若图 G中的每条边都是有方向的,则称