20155229 2016-2017-2 《Java程序设计》第五周学习总结
教材学习内容总结
第八章:
- Java中所有错误都会被打包为对象。
- 设计错误对象都继承自
java.lang.Throwable
类,它有两个子类java.lang.Error
与java.lang.Exception
- 调用
System.in.read()
时,in是System的静态成员,其类型为java.io.InputStream
-
Exception
或其子对象,但非属于RuntimeException
或其子对象,称为受检异常;属于RuntimeException
衍生出来的类实例,称为非受检异常。 - Java是唯一采用受检异常的语言,目的是:一、文件化;二、提供编译程序信息
- 尝试关闭资源语法也可以同时关闭两个以上的对象资源,只要中间以
;
分隔。
第九章
-
String
的split()
方法,可以指定切割字符串的方式,split()
会返回String[]
,包括切割的每个字符串,接着将String[]
中的每个字符串加入Set
的操作HashSet
. -
HashSet
的操作概念是,在内存中开设空间,每个空间会有个哈希编码,空间成为哈希桶。 -
Lambda
表达式的语法是省略了接口类型与方法名称,->左边是参数列,右边是方法本体,编译程序可由Request request
的声明得知语法上被省略的信息。 -
Lambda
表达式中使用区块时,如果需要返回值,则在区块中需使用return -
Map
操作类为java.util.HashMap
与java.util.TreeMap
,其继承自抽象类java.util.AbstractMap
教材学习中的问题和解决过程
问题1:p235的代码中,出现
ex
,并且多次出现于很多代码中。解决:,我开始以为是java中的语句,但是在API里面也找不到,直到在蓝墨云上问了老师后,老师给的答复是:ex只是变量名,没有什么特别的。这才得以解决。
- 问题2:Queue与Deque的区别
解决:
①队列(queue)是一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则。Java中,LinkedList实现了Queue接口,因为LinkedList进行插入、删除操作效率较高。
②双向队列(Deque),是Queue的一个子接口,双向队列是指该队列两端的元素既能入队(offer)也能出队(poll),如果将Deque限制为只能从一端入队和出队,则可实现栈的数据结构。对于栈而言,有入栈(push)和出栈(pop),遵循先进后出原则。
代码调试中的问题和解决过程
- 问题一:p227的代码,在运行时出现了以下错误
- 解决:
我首先查了API,知道UnknownFormatConversionException
的意思是未知格式转换异常
于是我检查代码,发现输出时浮点数的精度打错,如下图
将小数点
和2
调换方向后,程序输出正确
- 问题:p268的代码,在编译时出现下面的错误
- 解决:
因为是用set收集student的数据,所以我想尝试将最后的set改为students,
修改代码后的结果如下:
代码托管
- 代码提交过程及代码量截图截图:
上周考试错题总结
-
错题:4. 填空:”Hello”.charAt(1) 的值是(‘e’)
解决:p108.使用charAt()指定取得字符串中某个字符,索引从0开始。
-
错题:5. 填空:System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”.
解决: toLowerCase()的用法是将字符串中的字母从大写转换为小写。
- 错题:6. 填空:”Hello”.substring( 0,2 )的值是“He”
- 错题:13. CH06填空:标注(@Override)可以从语法上保证方法的Override.
-
错题:16. CH06 判断:父类的protected方法,在子类中可以override为public的方法。(OK)
解决:p173.对于父类中的方法权限,只能扩大不能缩小。
- 错题:22. CH06 判断:Java中所有的对象都有equals()方法。(OK)
错题:29. CH07 填空:用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。
结对及互评
与20155225江智宇同学结对。
点评模板:
基于评分标准,我给本博客打分:(0-10)。得分情况如下:xxx
点评过的同学博客和代码
其他(感悟、思考等,可选)
本周学习了java遇到异常时的处理方案和collection与Map,这两章的学习还是有难度的,这个星期很多都还没有摸得特别透彻,接下来会继续看书,继续学习的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 9/9 | 1/1 | 20/20 | |
第二周 | 162/ 171 | 1/2 | 25/45 | 学习java的基础语法 |
第三周 | 380/ 551 | 1/3 | 25/70 | 学习java对象及封装 |
第四周 | 831/ 1382 | 1/4 | 23/93 | 学习java的继承、接口与多态的运用 |
第五周 | 870 / 2252 | 1/5 | 20/113 | 学习java的异常处理和collection与map |
计划学习时间:23小时
实际学习时间:22小时
改进情况:
本周学习的内容也较多,但是总体下来感觉上与上周差不多,可能效率稍微稍微提高了点,下周还会继续努力的。