20145203盖泽双 《Java程序设计》第五周学习总结
20145203盖泽双 《Java程序设计》第五周学习总结
教材学习内容总结
1、Java中所有错误都会被打包为对象,运用try、catch,可以在错误发生时显示友好的错误信息,还可以在捕捉处理错误之后,尝试恢复程序正常执行流程。
2、①如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行。
②catch括号中列出的异常不得有继承关系,否则会发生编译错误。
③在catch区块进行完部分错误处理之后,可以使用throw(注意不是throws)将异常再抛出。
3、在多重方法调用下,异常发生点可能是在某个方法之中,若想得知异常发生的根源,以及多重方法调用下的堆栈传播,可以利用异常对象自动收集的堆栈追踪来取得相关信息。
4、要善用堆栈追踪,前提是程序代码中不可有私吞异常的行为。
5、在使用throw重抛异常时,异常的追踪堆栈起点,仍是异常的发生根源,而不是重抛异常的地方。
6、何时该使用断言?
①断言客户端调用方法前,已经准备好某些前置条件(通常在private方法之中)。
②断言客户端调用方法后,具有方法承诺的结果。
③断言对象某个时间点下的状态。
④使用断言取代批注。
7、收集对象的共同行为定义在Collection中,然而收集对象会有不同的需求。如果希望收集时记录每个对象的索引顺序,并可依索引取回对象,这样的行为定义在
java.util.List接口中。如果希望收集的对象不重复,具有集合的行为,则由java.util.Set定义。如果希望收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前
端,则可以使用java.util.Queue。如果希望Queue的两端进行加入、移除等操作,则可以使用java.util.Deque。
8、List是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序,其操作类之一是java.util.ArrayList。
9、若收集的对象经常会有变动索引的情况,也许考虑链接方式操作的List会比较好,像是随时会有客户端登录或注销的客户端List,使用LinkedList会有比较好的效率。
教材学习中的问题和解决过程
1、一开始看不太懂Lambda的用法。
解决方法:询问了一下同学,又通过几个实例了解到Lambda表达式的语法省略了接口类型与方法名称,->左边是参数列,而右边是方法本体;在Lambda表达式中使用区块时,如果
方法必须有返回值,在区块中就必须使用return。interator()方法提升至新的java.util.Iterable父接口。
代码调试中的问题和解决过程
1、如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行。catch括号中列出的异常不得有继承关系,否则会发生编译错误。
2、①Exception:在程序中必须使用try、catch进行处理。②RuntimeException:可以不使用try、catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。
本周代码托管截图
其他(感悟、思考等,可选)
在已经简单的学习和了解了java之后,在学习java的过程中,虽然工作量很大,但是却越来越容易接受这些新知识。
但是这次学习我发现,前面的一些知识我忘记了很多。很多知识点都要不断地翻前面的书去看,不断的温习旧的知识点。直到现在我仍然觉得java是一门非常复杂的语言。听别人
说,你学习什么东西什么时候觉得越学知识越少的时候就是真正的学会了。我觉得真正学会java还需要做太多太多的东西。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 2/2 | 20/20 | |
第二周 | 200/300 | 3/5 | 20/40 | |
第三周 | 200/500 | 1/6 | 30/70 | |
第四周 | 200/700 | 1/7 | 20/90 | |
第五周 | 200/900 | 1/8 | 20/110 |