20145315 《Java程序设计》第五周学习总结
教材学习内容总结
第八章
8.1语法与继承架构
8.1.1使用try,catch
所有的错误都会被打包为对象,使用try,catch可以对错误进行一些后期处理,使得错误发生时显示更友好的错误信息。
如果发生错误,执行流程会跳离错误发生点,然后比较catch中声明的类型,如果符合就执行catch中语句。
8.1.2异常继承架构
错误的对象继承java.lang.Throwable类,Throwable有两个子类Java.lang.Error与java.lang.Exceptions.
- Erroe与其子类实例代表严重系统错误。
-
Exception与其子类实例是异常处理。必须明确使用try,catch语法加以处理,或者用throw声明这个方法会抛出异常,否则会编译失败。
受检异常:一定要处理Exception,但不属于RuntimeException.
非受检异常:程序不强迫处理。RuntimeException是客户端引发的,属于客户端有关修改的内容,如果一定要处理,建议是呈现友好信息。
注意:如果父类异常对象在子类异常对象前被捕捉,则catch子类异常对象区块将永远不会被执行。所以要先捕捉子类。
多重捕捉语法:区块内容重复时使用。(不得有继承)
8.1.3要抓还是要抛
throw:如果抛出受检异常,但是以面前信息无法处理异常,可有客户端依据当时调用的环境信息进行处,使用throw声明。
如果是非受检异常,应该改善程序逻辑来避免引发错误。
在catch区块中进行完部分错误处理以后,可以使用throw将异常再抛出。如果抛出的是受检异常,必须在方法上使用throw声明.
可以使用异常继承,子类可以重新定义异常。
8.1.4
Java使用受检异常的目的是文件化和提供编程信息。
8.1.5
若想得知异常发生的根源,以及多重方法调用下的堆栈传播,可以利用异常对象自动收集的堆栈追踪来取得相关信息。
printStackTrace()
堆栈信息中显示了异常类型,最顶层的是异常根源,以下是调用的顺序。
如下:
java.lang.NullPointerException
at StackTraceDemo.a(StackTraceDemo.java:20)
at StackTraceDemo.b(StackTraceDemo.java:16)
at StackTraceDemo.c(StackTraceDemo.java:13)
at StackTraceDemo.main(StackTraceDemo.java:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)java:14)
at StackTraceDemo.main(StackTraceDemo.java:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
java.lang.NullPointerException
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
可以使用fillInStackTrace()方法将起点设在重抛异常的地方。
java.lang.NullPointerException
at StackTraceDemo.a(StackTraceDemo.java:26)
at StackTraceDemo.b(StackTraceDemo.java:22)
at StackTraceDemo.c(StackTraceDemo.
at StackTraceDemo.c(StackTraceDemo.java:17)
at StackTraceDemo.main(StackTraceDemo.java:7)
第九章
9.1使用collection与Map
9.1.1认识架构
收集对象时,会依据需求使用不同的接口操作对象。
9.1.2索引List
- ArrayList特性:数组特性
-
LinkedList特性:连接结构
9.1.3 Set
若有重复,则不再收集
9.1.4 Queue
收集的对象加入尾端,取得对象时从前端。
9.1.5泛型语法
表示支持泛型 9.1.6简介lambda
键值对应的MAP
根据某个键来取得对应的值
常用MAP操作类
- HashMap
- TreeMap
- Properties
教材学习中的问题和解决过程
没有什么问题。。。
代码调试中的问题和解决过程
本周代码托管截图
加入小组应该就不用放截图了吧
其他(感悟、思考等,可选)
感觉现在还是跟着书上走,照着书上的代码打,虽然能看懂,但是完全不会自己编。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第五周 | 1000/1000 | 1/1 | 40/40 |