zoukankan      html  css  js  c++  java
  • 学号20155311 2016-2017-2 《Java程序设计》第5周学习总结

    学号20155311 2016-2017-2 《Java程序设计》第5周学习总结

    教材学习内容总结

    由于我的ios系统出了一些问题,所以git idea jdk我都重新在windows系统上装了一下,这样以后在编代码时遇到的问题解决起来会更方便一些。

    第八章

    • 8.1 语法与继承构架

    • 什么是异常?在 Java 编程语言中,异常类定义程序中可能遇到的轻微的错误条件。可以写代码来处理异常并继续程序执行,而不是让程序中断。

    • Java 提供了一种异常处理模型,它使您能检查异常并进行相应的处理。它实现的是异常处理的抓抛模型。使用此模型,您只需要注意有必要加以处理的异常情况。Java 提供的这种异常处理模型,代替了用返回值或参数机制从方法返回异常码的手段。

    • 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。 Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。

    • Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM出现的问题。

    • 使用try...catch

    • JVM会尝试执行try区块中的程序代码,如果发生错误,执行程序就会比对catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是就执行catch中的程序代码。

    • try块 :
      try 块由一组可执行语句组成,在执行它们时可能会抛出异常。try 块后可随一个或多个catch块,用来捕获在try中抛出的异常。另一方面,try 不可以跟随在 catch块之后。也就是说:在try语句块中包含可能会产生异常的语句.

    • catch块 :
      catch 块,从其名称就可以看出,是用来捕获并处理 try中抛出的异常的代码块。没有try 块,catch 块不能单独存在,我们可有多个 catch 块,以捕获不同类型的异常。

    • try{

    //可能会出现异常的代码

    }

    catch(SQLException e){

    //处理操纵数据库出现的异常

    }

    catch(IOException e){

    //处理操纵输入流和输出流出现的异常

    }

    • 若某个方法声明会抛出Thorwable或子类实例,只要不是属于Error或java.lang.RuntimeException,就必须明确使用try、catch语法加一处理,或者在方法中使用throws声明这个方法会抛出异常,否则编译失败

    • 认识堆栈追踪
      堆栈追踪信息中显示了异常类型,最顶层是异常的根源,但是前提是程序代码中不可有私吞异常的行为、对异常做了不适当的处理,或显示了不正确的信息

    • 调用栈机制
      如果方法中的一个语句抛出一个没有在相应的 try/catch块中处理的异常, 那么这个异常就被抛出到调用方法中。如果异常也没有在调用方法中被处理,它就被抛出到该方法的调用程序。 这个过程要一直延续到异常被处理。如果异常到这时还没被处理, 它便回到 main(),而且,即使main()不处理它,那么,该异常就异常地中断程序。

    • 8.2异常与资源管理

    • finally块
      finally 块表示:无论是否出现异常,都会运行的块 通常在finally块中可以编写资源返还给系统的语句. 它紧跟着最后一个块,是可选的,不论是否抛出异常,finally 块总会被执行。

    finally块的语法如下:

    try{

    }catch(异常类型1 e){

    }catch(异常类型2 e){

    }finally{

    }

    第九章

    • 9.1 使用Collection集合对象

    • 认识collection架构
      Connection: 增、删、遍历对象
      add
      remove
      clear
      size
      iterator

    • List: 类似数组,具有位置信息,带索引。List是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序,其操作类之一是java.util.ArrayList。查看API文件的时候发现,List接口定义了add(int index, E element)、remove(int index)、set(int index, E element)等许多依索引操作的方法。

    • Set: 其中的对象不能有重复的。同样是收集对象,在收集过程中若有相同对象,则不再重复收集,若有这类需求,可以使用Set接口的操作对象,String的Split()方法,可以指定切割字符串的方式。一般用hashcode()与equals()来判断对象是否相同。

    • Queue: 队列 核心方法 offer:添加一个元素并返回true,如果队列已满,则返回false。
      poll:移除并返问队列头部的元素,如果队列为空,则返回null。
      peek:返回队列头部的元素,如果队列为空,则返回null。
      Deque: 双向队列。

    • sort:Java中对象排序,要么对象实现了Comparable可以直接sort要么提供Comparator对象告知sort如何排序

    • 9.2 键值对应的Map

    • 常用的Map类 以事先利用java.util.Map接口的操作对象来建立键值对应数据,之后若要取得值,只要用对应的键就可以迅速取得。判断键是否重复是根据hashcode()与equals(),所以作为键的对象必须操作hashcode()与equals()。

    • 三种常用的Map操作类:
      HashMap:建立的键值对应是无序的
      TreeMap:建立的键值对应是有序的
      Properties:配置文件

    • 访问Map键值
      如果想取得Map中所有的键,可以调用Map的keySet()返回Set对象。由于键是不重复的,所以使用Set操作返回或者使用values()返回Collection对象。

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

    • throw与throws的区别

    • throw语句
      throw 语句用来从代码中主动抛出异常。throw 的操作数是任一种异常类对象。下面是

      throw关键字的一个示例:

    try {

    int i = 5/0;

    } catch (ArithmeticException i) {

    throw new Exception("Can not be divided by zero!");

    }

    • throws语句
      throws用来在方法定义时声明异常。 Java 中对异常的处理有两种方法,一个就是try-catch,然后自己处理;一个就是不做处理,向外throws,由别人去处理。Java 语言要求在方法定义中列出该方法抛出的异常.

    代码托管http://git.oschina.net/bestiisjava2017/gaoziyun20155311/tree/master/第五周/src?dir=1&filepath=第五周%2Fsrc&oid=65f5c5020cb63f77b514e476e435e4cb9a48c077&sha=e6f8db6731ed96110cdab1753ed60847bc53d807

    • 代码提交过程截图:

    上周考试错题总结

    • CH06填空:标注(@Override)可以从语法上保证方法的Override.
    • 用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。

    结对及互评

    评分标准(满分10分)

    1. 从0分加到10分为止

    2. 正确使用Markdown语法(加1分):

      • 不使用Markdown不加分
      • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
      • 排版混乱的不加分
    3. 模板中的要素齐全(加1分)

      • 缺少“教材学习中的问题和解决过程”的不加分
      • 缺少“代码调试中的问题和解决过程”的不加分
      • 代码托管不能打开的不加分
      • 缺少“结对及互评”的不能打开的不加分
      • 缺少“上周考试错题总结”的不能加分
      • 缺少“进度条”的不能加分
      • 缺少“参考资料”的不能加分
    4. 教材学习中的问题和解决过程, 一个问题加1分

    5. 代码调试中的问题和解决过程, 一个问题加1分

    6. 本周有效代码超过300分行的(加2分)

      • 一周提交次数少于20次的不加分

    6 其他加分:
    - 周五前发博客的加1分
    - 感想,体会不假大空的加1分
    - 排版精美的加一分
    - 进度条中记录学习时间与改进情况的加1分
    - 有动手写新代码的加1分
    - 课后选择题有验证的加1分
    - 代码Commit Message规范的加1分
    - 错题学习深入的加1分
    7 扣分:
    - 有抄袭的扣至0分
    - 代码作弊的扣至0分

    点评模板:

    • 基于评分标准,我给本博客打分:(0-10)。得分情况如下:xxx

    • 参考示例

    点评过的同学博客和代码

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

    对于java的一些最基本知识的了解,我们的学习即将学习完毕。随时学习周数的不断增加,同学之间学习掌握的程度区别越来越大,自己也通过对比,越来越认识到自己的不足和自己很大的进步空间,希望自己能不断克服困难障碍,向掌握良好的同学看齐,不仅仅局限于课本,不断增加自己学习的深度和广度。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20 hello java
    第二周 300/500 2/4 18/38 流程控制
    第三周 500/1000 3/7 22/60 类与对象、封装
    第四周 300/1300 2/9 30/90 继承、接口
    第五周 950/4000 6/9 30/90 异常与资源管理
  • 相关阅读:
    【iOS】去掉Tabbar顶部线条
    iOS中控制器的释放问题
    码云平台帮助文档_V1.2
    iOS键盘 样式/风格
    cocoapods的安装 升级版
    Unity异常捕获
    tomcat和jdk的安装配置
    Unity读取Excel表格
    NFS
    K8S存储相关yaml
  • 原文地址:https://www.cnblogs.com/gaoziyun11/p/6624406.html
Copyright © 2011-2022 走看看