20145103《Java程序设计》第5周学习总结
教材学习内容总结
第八章 异常处理
1.设计错误对象都继承自java.lang.Throwable类
2.Java中所有错误都会被打包为对象,运用try、catch,可以在错误发生时显示友好的错误信息
3.Throwable有两个子类:java.lang.Error与java.lang.Exception
4.catch括号中列出的异常不得有继承关系,否则会发生编译错误
5.catch语句可以有多个,分别处理不同类的例外。Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止
6.如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行
7.可以用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的情况来选择catch语句的例外处理类型
8.Error与其子类实例代表严重系统错误(硬件层面错误、JVM错误、内存不足等)
9.如果抛出的是受检异常,表示你认为客户端有能力且应该处理异常,此时必须在方法上使用throws声明;如果抛出的异常是非受检异常,表示你认为客户端调用方法的时机错了,抛出异常是要求客户端修正这个漏洞再来调用方法,此时也就不用throws声明
10.Exception或其子对象,但非属于RuntimeException或其子对象,称为受检异常
11.try所限定的代码中,当抛弃一个例外时,其后的代码不会被执行
12.如果程序撰写的流程中先return了,而且也有finally区块,那finally区块会先执行完后,再讲将值返回
13.断言客户端调用方法前,已经准备好某些前置条件(通常在private方法之中)。断言客户端调用方法后,具有方法承诺的结果。断言对象某个时间点下的状态。使用断言取代批注。
第九章 Collection与Map
1.认识Collection架构
JavaSE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口的操作架构,才能了解何时该采用哪个类,以及类之间如何彼此合作,而不会沦为死背API或抄写范例的境界。
收集对象的行为,像是新增对象的add()方法、移除对象的remove()方法等,都是定义在java.util.Collection中。既然可以收集对象,也要能逐一取得对象,这就是java.lang.Iterable定义的行为,它定义了iterable()方法返回java.util.Iterator操作对象,可以让你逐一取得收集的对象。Collection接口中有三个子接口,分别是List、Set和Queue。如果希望收集时记录记录每个对象的索引顺序,并可依索引取回对象,可以使用java.util.List接口,如果希望收集的对象不重复,具有集合的行为,可以使用java.util.Set接口,如果希望收集对象时以队列方式,收集的对象假如至尾端,取得对象时从前端,则可以使用java.util.Queue接口,如果希望对Queue的两端进行加入、移除等操作,则可以使用java.util.Deque。
2.键值对应的Map
就如同网络搜素,根据关键字可找到对应的数据,程序设计中也常有这类的需求,根据某个键来取得对应的值。可以事先利用java.util.Map接口操作对象来建立键值对应数据,之后若要取得值,只要用对应的键,只要用对应的键就可以迅速取得。
常用Map操作类有HashMap、TreeMap和Properties。HashMap的特点是线程不安全,速度快,允许存放null 键,null值,TreeMap会对键进行排序,条件是作为键的对象必须操作Comparable接口,或者是在创建TreeMap时指定操作Comparable接口的对象,Properties的setProperty()可以指定字符串类型的键值,getProperty()可以指定字符串类型的键,取回字符串类型的值,通常称为属性名称与属性值。
其他(感悟、思考等,可选)
这周课本过的比较快,看的不是很仔细,以后再慢慢加强吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 2000行 | 16篇 | 400小时 | |
第一周 | 200/200 | 1/2 | 20/20 | |
第二周 | 200/400 | 1/3 | 20/40 | |
第三周 | 200/600 | 1/4 | 20/30 | |
第四周 | 200/800 | 1/5 | 20/80 | |
第五周 | 200/1000 | 1/6 | 20/100 |