20145319 第五周学习总结

20145319 《Java程序设计》第五周学习总结

教材学习内容总结

本周学习了教材的第八章、第九章,在通过前几周的学习以后,咱们大体了解了java中的基础语法,函数构造调用,以及当以项目为基础设计代码时咱们该如何使用继承和接口,对java已有初步了解,所以这两章咱们要进一步学习的是如何处理程序中的异常情况。html

1. 异常处理语法java

  1. 定义:java中全部错误都会被打包成一个对象,因此能够尝试(try)捕捉(catch)错误对象,并作出相应处理。
  2. try:多和catch搭配使用,JVM会尝试try区块中的程序代码。若是发生了错误,即马上跳出错误点,比较catch()中声明的错误类型,若是吻合就执行catch区块中的代码
  3. catch:和try搭配使用,若是catch()声明的错误类型和try区块中的代码错误类型一致,就马上执行catch区块中的代码
  4. Multi-catch(多重捕捉):在实际中,常常会碰见数个类型的catch区块在作一样的事情,并且catch区块内容都是重复的,这样不只不方便撰写也不方便维护,这时候能够写成以下模式express

    try{ ; }catch(IOException|InterruptedException|ClassCastException){ ; }
  5. throws:操做对象抛出受检对象,但目前环境信息却不足以处理异常,则没法使用try、catch处理,此时就要用throws声明此方法会抛出的异常类型或其父类型,不然会编译失败。(在同时使用继承时,若是父类某个方法声明throws某些异常,子类从新定义该方法时不能够throws父类方法中没声明的其余异常。throws父类方法声明的异常的父类数组

  6. throw:在catch区块操做完部分错误处理以后,可使用throw再将异常抛出网络

  7. assert:分为assert booleanexpression;和assert booleanexpression:detailexpression;若是booleanexpression为true则什么都不发生若为false,则会发生java.lang.AssertionError

2. 异常继承架构数据结构

  1. 设计错误对象都继承自java.lang.Throwable类,Throwable定义了取得错误信息,堆栈追踪(Stack Trace)等方法,它有两个子类:java.lang.Error和java.lang.Exception

3. 异常和资源管理架构

  1. finally:在调用文档时,当文档读取完或者不使用时就应该close()关闭文档,可是若是程序在Scanner.close()前发生了异常,该语句就会因中断而不被执行,finally能够和try、catch搭配,若写有fianlly区块,则finally区块就必定要被执行,将Scanner.close();写在fianlly区块中就能够避免上述状况。
  2. Try-With-Resources: 要自动关闭资源的对象撰写在try()中,若是无需catch处理异常,能够不用写,也不用写finally区块

4. Collection架构函数

  1. 如同数据结构同样,在java.util.Collection中有增、删、遍历对象 add: remove: clear: size: iterator:
  2. set:在收集过程当中如有相同对象,想要重复收集,可使用set接口的操做对象

5.具备索引的List学习

核心方法 add(int index, E element)、 remove(int index)set(int index, E element)spa

  1. ArrayList:至关于数据结构的线性表,

  2. LinkedList:至关于数据结构链式表

 

6. 键值对应的Map

  • 如网络搜索,根据关键字能够找到对应数据,程序设计中的java.util.Map接口的操做对象用来简历键值对应数据
  • 经常使用的Map操做类有HashMap、TreeMap与Properties三种。
  • 若是想取得Map中全部的键,能够调用Map的keySet()返回Set对象。因为键是不重复的,因此使用Set操做返回或者使用values()返回Collection对象

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

  • 在编写书上课后习题的代码时常常碰见args[0],开始并不清楚args[0]表明什么,只记得在最开始学java时,要打开main方法就必定要写public static void main(String[] args),后面才知道args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名。String[ ] args表示给主方法传一个字符串数组
  • 如何指定命令行自变量?
  • 其实刚开始看的时候有一堆不懂的,如今也并不能说就真的懂了,可是一些零零碎碎的小问题的解决过程就不一一赘述了

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

 代码:

 

原本书上是问在没有指定命令行自变量的状况下执行程序会发生什么?可是因为本身并不熟悉命令行自变量,也不知怎么指定命令行自变量,只能猜想是catch()中的错误类型不恰当而致使了编译的失败,因此对程序作了一些修改

修改:

改为如上程序以后,没有指定命令行自变量,程序编译经过,运行后输出“输入数字”

代码托管截图:

 

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

  • 前几周的学习其实都有点操之过急,正好这几章也有与数据结构相关,能够和数据结构的课程结合起来,接下来的假期正好能够休息一下也能够回顾一下以前学过的和最近所学的数据结构,感受这样效果会比较好。

学习进度条

 

 

代码行数(新增/累积)

博客量(新增/累积)

学习时间(新增/累积)

重要成长

目标

3500行

28篇

300小时

 

第五周

200/1200

1/5

20/105

 

第六周

 

 

 

 

第七周

 

 

 

 

第八周

 

 

 

 

参考资料

- ...

相关文章
相关标签/搜索