20155334 2016-2017-2 《Java程序设计》第五周学习总结

教材学习内容总结

第八章:异常处理

  • Java中所有错误都会被打包为对象,在编程的时候会遇到因各种原因而导致的错误,我们可以使用trycatch组成的语法捕捉错误,还可以在捕捉处理错误之后,尝试恢复程序正常执行流程:
 try {
·······
}
catch(ArrayIndexOutOfBoundsException ex) {
······
}
  • 如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行。

  • catch括号中列出的异常不得有继承关系,否则会发生编译错误。

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

  • catch区块进行完部分错误处理之后,可以使用throw(注意不是throws)将异常再抛出。

  • 错误会被包装成对象,这些对象都是可抛出的(throw),因此设计错误对象都继承至java.lang.Throwable类,Throwable定义了取得错误信息、堆栈追踪等方法,他有两个子类java.long.Errorjava.lang.Exception

  • Error与其子类实例代表严重系统错误(硬件层面错误,JVM错误或者内存不足),不建议用trycatch来处理Error对象,Java应用程序本身无力回复。

  • Exception或其子类实例可以表现程序设计本身的错误,称错误处理为“异常处理”

  • 多重捕捉:cath( | | )会在发生多种异常时执行,但括号中列出的异常不得有继承关系

  • FileInputStream可指定档名来开启与读取文档内容,是InputStreaam的子类,可用作创建Scanner

  • 先处理部分事项再抛出(在throws里用trycatch再在任何流程中使用throw将异常再抛出)在流程中抛出异常就直接跳离原有的流程,抛出受检异常,认为客户端能处理异常,必须在方法上使用throws声明,抛出非受检异常,认为客户端调用方法时机出错,抛出异常要求客户端修改漏洞再来调用方法。

  • 堆栈追踪:想得知异常发生的根源,以及多重方法调用下异常的堆栈传播,可以利用异常对象自动收集的堆栈追踪

  • 堆栈追踪最简单的方式是直接调用异常对象的printStackTrace()

java.lang.AutoCloseable接口
  • 尝试关闭资源语法可套用对象,必须操作java.lang.AutoCloseable接口
  • 只要操作AutoCloseable接口,就可以套用至尝试关闭资源语法,可以同时关闭两个以上的资源对象,中间以分号分隔
  • p253代码(AutoClosableDemo2)
  • 地址
  • try括号中越后面撰写的对象会越早被关闭

第九章:Collection与Map

认识Collection架构

具有索引的List

List是一种Collection,其作用类之一是java.util.arrayList

内容不重复的Set

Set接口:在收集过程中若有相同的对象,则不再重复收集,可以使用Set接口的操作对象

  • 哈希桶:在内存中开设空间,每个空间里都有哈希函数,对象要加入HashSet,则会调用对象的hashCode()取得哈希码并尝试放入对应号码的哈希桶中,调用equals判断两个对象是否相同是否予以收集
支持队列操作的Queue
  • Queue接口:收集对象时以队列方式,收集的对象加至尾端,取得对象从前端,可以使用Queue接口的操作对象,继承自Collection
  • Queue定义了自己的offer()poll()peek()方法,操作失败会返回特定值
  • offer()在队列后端加上对象,成功返回true,失败返回false
  • poll()取出队列前端对象,队列为空返回null
  • peek()取得但不取出队列前端对象,队列为空返回null

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

  • 问题1:不太明白List
  • 问题1解决方案:查询相关博客明白了List是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序,其操作之一是java.util.ArrayListArrayList特性:数组在内存中会是连续的线性空间,根据索引随机存取时速度快。有可指定容量的构造函数。 LinkedList特性:若收集的对象经常会有变动索引的情况。

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

  • 问题1:在调试Average的过程中,出现了编译错误的问题
  • 问题1解决方案:在后来的调试过程中发现出现字母输入错误。

代码托管

上周考试错题总结

  • "Hello".substring(0,2)的值是"He"
  • 判断:final可以用在类,方法,变量前。(OK)
  • Java中一个类可以继承多个类。(X)
  • Java中一个接口可以继承多个接口。(OK)
  • 在构造方法中调用本类的构造方法,要使用(this)关键字

点评过的同学博客和代码

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

在学习的道路上没有平坦的捷径,唯有持之以恒的认真刻苦才能够学有所成。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 5/5 1/1 10/10
第二周 90/95 1/2 15/25
第三周 131/234 1/3 20/45
第四周 289/ 523 1/4 21/66
第五周 446/969 1/5 25/91

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

参考资料

20155334 2016-2017-2 《Java程序设计》第五周学习总结的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  3. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

  4. 20155334 2016-2017-2 《Java程序设计》第二周学习总结

    20155334 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 java中的基本类型 整数:有short.int.long三种 字节:byte 字符:cha ...

  5. 20155334 2016-2017-2 《Java程序设计》第一周学习总结

    20155334 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章主要讲了Java的前世今生以及Java的三大平台(Java SE.Java EE.Ja ...

  6. 20155333 2016-2017-2 《Java程序设计》第九周学习总结

    20155333 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC- ...

  7. 20155321 2016-2017-2 《Java程序设计》第九周学习总结

    20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...

  8. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  9. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  10. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

随机推荐

  1. 第七周PSP 新折线图和饼图 个人时间管理

    1.PSP DATE START-TIME END-TIME EVENT           DELTA TYPE 4.18 15.36 16.10 读构建执法 走神5min         29mi ...

  2. python箱型图

    #-*- coding: utf-8 -*- import pandas as pd catering_sale = '../data/catering_sale.xls' #餐饮数据 data = ...

  3. python学习笔记三——控制语句

    2.5 运算符与表达式 2.5.1 算术运算符和算术表达式 算术运算符包括四则运算符.求模运算符和求幂运算符. 算术运算符 加减乘除:+ - * / 表达式:x+y   x-y   x*y  x/y ...

  4. linux服务器上安装python 3.6.3

    一.下载源码包 地址https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz 二.解压源码包 1.下载解压工具xz #yum -y ins ...

  5. BZOJ1251序列终结者——非旋转treap

    题目描述 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技 ...

  6. hg和git命令对照表

    hg和git命令对照表 来源 https://github.com/sympy/sympy/wiki/Git-hg-rosetta-stone Git hg rosetta stone   muxat ...

  7. 向git添加和提交文件

    状态 git status 可以知道有哪些文件被修改,哪些文件待提交 当前无待提交文件 分区 三个分区:工作区,缓存区,版本库 三个分区之间的联系: 工作区 >> git add > ...

  8. MT【72】一个不等式

    证明: 评: 可以思考$\frac{1}{(1+b)^2}+\frac{1}{(1+a)^2}$与$\frac{2}{(1+\sqrt{ab})^2}$大小.

  9. MT【31】傅里叶级数为背景的三角求和

    接下来要讲的这道题,背景有点复杂,不要求99%的学生看的懂背景,但是解答过程中涉及的反证法以及第二数学归纳法对自主招生的学生来说倒是不错的学习机会. 解答: 评 : 本题的背景为高等数学中的傅里叶分析 ...

  10. 自学Linux Shell9.2-基于Red Hat系统工具包存在两种方式之一:RPM包

    点击返回 自学Linux命令行与Shell脚本之路 9.2-基于Red Hat系统工具包存在两种方式之一:RPM包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方 ...