20145338《Java程序设计》第五周学习总结
教材学习内容总结
第8章
错误会被包装为对象,这些对象是可抛出]因此设计错误对象都继承自java.lang.Throwable类,Throwable定义了取得错误信息、堆栈追踪等方法。它有两个子类:java.lang.Error与java.lang.Exception。
Error与其子类实例代表严重系统错误,发生严重系统错误时,java应用程序本身是无力处理的。
如果抛出了Throwable对象,而程序中没有任何catch捕捉到错误对象,最后由JVM捕捉到的话那JVM,处理就是显示错误对象包装的信息并中断程序。
程序设计本身的错误,建议使用Exception或其子类实力来表现所以通常称错误处理为异常处理。
但就语法与继承架构上来说,如果某个方法声明会抛出Throwable或子类实力,只要不是属于Error或java.lang.RuntimeException或其子类实力你就必须明确使用try,catch语法加以处理,或者在方法中用throws声明这个方法会抛出异常,否则会变异失败。
Exception或其子对象,但非属于RuntimeException或其子对象,称为受检异常(CheckedException)受检异常存在的目的在于API设计者实现某方法时某些条件成立时会引发错误,而且认为调用方法的客户端有能力处理错误API客户端无权选择要不要处理。
如果父类异常对象在子类异常对象前被捕捉,则catcah子类异常对象的区块将永远不会被执行,编译程序会检查出这个错误。从JDK7开始,可以使用多重捕捉(Multi-catch)语法,不过仍得注意异常的继承,catch括号中列出的异常不得有继承关系,否则会发生编译错误。
在catch区块进行完部分错误处理之后可以使用,throw(注意不是throws)将异常在抛出若想得知异常发生的根源,以及多重方法调用下异常的堆栈传播,可以利用异常对象自动收集的堆栈追踪来取代相关信息,例如调用异常对象的printStackTrace(),getStackTrace()等方法。
无论try区块中有无发生异常,若撰写有finally区块,则finally区块一定会被执行如果城市 撰写的 流程中先return了,而且也有finally区块会先执行完后再将执行返回.
JDK7的尝试关闭资源语法可套用的对象,必须操作java,langAutoCloseable接口,这是JDK7 新增的接口句号尝试关闭资源语法也可以同时关闭两个以上的对象资源,只要中间一分号分隔。在try的括号中,越后面撰写的对象资源会越早被关闭。
第9章
收集对象的行为,像是新增对象的add()方法,移除对象的remove()方法等,都是定义在java. util.Collection中。
既然可以收集对象,也要能逐一取得对象,这就是java .lang.Iterable定义的行为,它定义了iterator()方法返回java.util.Iterator操作对象。
数组在内存中会是连接的线性空间,根据索引随机存取时速度最快,如果操作上有这类需求时,像是排序,就可使用Ar2rayList, 可得到较好的速度表现。
LinkedList在操作 List接口时,采用了链接结构,不会事先耗费内存,想要指定索引随机内存对象时,会比较没有效率,链接的每个元素会参考下一个元素,这有利于调整索引顺序。若收集的对象经常会有变动索引的情况,也许考虑链接方式操作的List会比较好。
无论List、 set还是Queue, 都会有个iterator()方法,这个方法在JDK1.4之前,是定义在collection 接口之中,而List,Set,Queue继承自Collection,所以也都拥有iterator()的行为。
在java的规范中,跟顺序有关的行为,通常要比对象本身是 Comparable,要不就是另行指定Comparator对象告知如何安排。
在JDK7 之后新增了尝试关闭资源(Try-With-Resources)语法,想要尝试自动关闭资源的对象,是撰写在try 之后的括号中。
本周代码托管截图
代码在我的笔记本上,明天到校就补上。
其他(感悟、思考等,可选)
因为是假期作业写的好赶,回去再好好看书吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 300/5000 | 13/7 | 20/20 | |