20155229 2016-2017-2 《Java程序设计》第五周学习总结

时间:2021-12-06 00:07:54

20155229 2016-2017-2 《Java程序设计》第五周学习总结

教材学习内容总结

第八章:

  • Java中所有错误都会被打包为对象。
  • 设计错误对象都继承自java.lang.Throwable类,它有两个子类java.lang.Errorjava.lang.Exception
  • 调用System.in.read()时,in是System的静态成员,其类型为java.io.InputStream
  • Exception或其子对象,但非属于RuntimeException或其子对象,称为受检异常;属于RuntimeException衍生出来的类实例,称为非受检异常。
  • Java是唯一采用受检异常的语言,目的是:一、文件化;二、提供编译程序信息
  • 尝试关闭资源语法也可以同时关闭两个以上的对象资源,只要中间以分隔。

第九章

  • Stringsplit()方法,可以指定切割字符串的方式,split()会返回String[],包括切割的每个字符串,接着将String[]中的每个字符串加入Set的操作HashSet.
  • HashSet的操作概念是,在内存中开设空间,每个空间会有个哈希编码,空间成为哈希桶。
  • Lambda表达式的语法是省略了接口类型与方法名称,->左边是参数列,右边是方法本体,编译程序可由Request request的声明得知语法上被省略的信息。
  • Lambda表达式中使用区块时,如果需要返回值,则在区块中需使用return
  • Map操作类为java.util.HashMapjava.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的代码,在运行时出现了以下错误

20155229 2016-2017-2 《Java程序设计》第五周学习总结

  • 解决:

我首先查了API,知道UnknownFormatConversionException的意思是未知格式转换异常

20155229 2016-2017-2 《Java程序设计》第五周学习总结

于是我检查代码,发现输出时浮点数的精度打错,如下图

20155229 2016-2017-2 《Java程序设计》第五周学习总结

小数点2调换方向后,程序输出正确

20155229 2016-2017-2 《Java程序设计》第五周学习总结

  • 问题:p268的代码,在编译时出现下面的错误

20155229 2016-2017-2 《Java程序设计》第五周学习总结

  • 解决:
    因为是用set收集student的数据,所以我想尝试将最后的set改为students,
    20155229 2016-2017-2 《Java程序设计》第五周学习总结

20155229 2016-2017-2 《Java程序设计》第五周学习总结

修改代码后的结果如下:

20155229 2016-2017-2 《Java程序设计》第五周学习总结

代码托管

  • 代码提交过程及代码量截图截图:

20155229 2016-2017-2 《Java程序设计》第五周学习总结

上周考试错题总结

  • 错题: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小时

  • 改进情况:
    本周学习的内容也较多,但是总体下来感觉上与上周差不多,可能效率稍微稍微提高了点,下周还会继续努力的。

参考资料