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 异常与资源管理
  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/gaoziyun11/p/6624406.html
Copyright © 2011-2022 走看看