20155209 2016-2017-2 《Java程序设计》第五周学习总结
教材学习内容总结
- try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个例外。
- catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。
- catch语句可以有多个,分别处理不同类的例外。
- Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。
这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。
- try所限定的代码中,当抛弃一个例外时,其后的代码不会被执行。
- 通过finally语句可以指定一块代码。无论try所指定的程序块中抛弃或不抛弃例外,也无论catch语句的例外类型是否与所抛弃的例外的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。
- 通常在finally语句中可以进行资源的清除工作。如关闭打开的文件等。
- throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。
- throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
- Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。
- List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
- Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。
教材学习中的问题和解决过程
- 问题1:try/catch/finally的使用模板?
- 问题2:throw和throws的区别
- throw与throws的比较
1、throws出现在方法函数头;而throw出现在函数体。
2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。 - 问题3:关于collection的理解
- collection接口有两个子接口:List(列表),Set(集)。List:可存放重复元素,元素存取是有序的。Set:不可以存放重复元素,元素存取是无序的。
- ArrayList:线程不安全,查询速度快。LinkedList:链表结构,增删速度快。
- 取出List集合中元素的方式:get(int index):通过脚标获取元素。iterator():通过迭代方法获取迭代器对象。
- 问题4:Map与Collection的区别,Map的使用方法。
- Map与Collection在集合框架中属并列存在。Map存储的是键值对;Map存储方法是用put方法,collection是用add方法;
代码调试中的问题和解决过程
- 使用properties遇到的问题
- 解决:操作properties文件
- 代码仔细认真按照书中顺序打,除了几处书中印刷错误没有发现更大错误。
代码托管
- 代码提交过程截图:
- 代码量截图:
上周考试错题总结
- 4 填空:”Hello”.charAt(1) 的值是(‘e’)
- 5 填空:System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”..
- 21 CH06 判断:XX是一个引用型变量,System.out.println(XX)等价于System.out.println(XX.toString()). (OK)
- 30 CH07 填空:面向对象中,设计经验可以用(设计模式)表达
结对及互评
基于评分标准,我给本博客打分:9 。得分情况如下:
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 加1分
- 代码调试中的问题和解决过程, 加2分
- 本周有效代码超过300分行,加2分
6 其他加分,加2分 :
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
点评过的同学博客和代码
其他(感悟、思考等,可选)
本周代码量很多,只是按照书中代码按部就班的往下编写,思考的时间很少,争取下周有一些自己思考的代码,可以对书中代码加上一些简单修改,或者加上一些类似的功能。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 10/10 | 1/1 | 10/20 | |
第二周 | 196/206 | 1/2 | 20/30 | |
第三周 | 391/597 | 1/3 | 20/50 | |
第四周 | 731/1328 | 1/4 | 30/80 | |
第五周 | 908/2236 | 1/5 | 20/10 0 |