20145229吴姗珊第八章第九章总结
教材学习内容总结
异常继承架构
区别:Error错误:JVM内部的严重问题。无法恢复。程序人员不用处理
Exception异常:普通的问题。通过合理的处理,程序还可以回到正常执行流程。要求编程人员要进行处理
RuntimeException:也叫非受检异常。这类异常是编程人员的逻辑问题。java编译器不进行强制要求处理。也就是说,这类异常在程序中,可以进行处理,也可以不处理。
非RuntimeException:也叫受检异常。这类异常是由一些外部偶然因素所引起的。java编译器强制要求处理。也就是说,程序必须进行对这类异常的处理。
注意:
Error与其子类实例代表严重的系统错误,其对象抛出时,基本不用处理,任其传播至JVM为止,或者最多留下日志信息
catch括号中列出的异常不得有继承关系,否则会发生编译错误
java是唯一采用受检异常的语言,一是为了文件化,客户端只要查阅文件,就可以知道哪些方法可能发生异常。二是提供编译程序信息,让编译程序能够在编译时期就检查出API客户端没有处理异常
throw和catch
如果抛出非受检异常,在java中的设计上认为,非受检异常是程序设计不当引发的漏洞,异常应自动往外传播
重新抛出异常时,如果认为调用API的客户端应当有能力处理未处理的错误,就自定义受检异常、填入适当错误信息并重新抛出,并在方法上使用throws加以声明;如果认为调用API的客户端没有准备好就调用了方法,才会造成还有未处理的错误,就自定义非受检异常、填入适当错误信息并重新抛出
认识堆栈追踪
特点:采用直接调用异常对象的printStackTrace()
善用堆栈追踪,不可有私吞异常的行为、对异常做了不当的处理
在使用throw重抛异常时,异常的追踪堆栈起点,任然是异常发生的根源
assert
1.assert boollean_expression;2.assert boolean_expression:detail_pression
了解Collection架构
在使用满足各种需求的API前,需要先了解其继承与接口操作,才能了解何时采用哪个类,以及类间如何彼此合作
可以清楚地明了哪些类操作了哪个接口,继承了那个类,或哪些接口又继承自哪个接口。总之可在API文件上查询
内容不重复的set
在收集过程中若有相同对象,则不在重复收集。
String的split(),可以指定切割字符串的方式。
调用set的size()方法,就可以知道收集的字符串个数。
HashSet的toString()操作,会包括收集的字符串。
会使用对象hashcode()与equals()来判断对象是否相同
键值对应的Map
事先利用java.util.Map接口的操作对象来建立键值对应数据
HashMap,要建立键值对应,可以使用put()方法,第一个自变量是键,第二个自变量是值。对于Map而言,键不会重复,判断是否重复根据hashCode()与equals()
Properties的setProperty()指定字符串类型的键值,getProprty指定字符串类型的键,取回字符串类型的值,通常称为属性名称与属性值
如果想要取得Map中所有的键,可以调用Map的KeySet()返回Set对象
其他(感悟、思考等,可选)
今天做了2个实验,一个考试,没有太多时间写博客了,慢慢疲惫
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/1 | 17/17 | |
第二周 | 100/100 | 1/1 | 15/15 | |
第三周 | 200/200 | 1/1 | 17/17 | |
第四周 | 390/390 | 1/1 | 15/15 |