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

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

教材学习内容总结

Chapter8

  • 就Java在异常处理的设计上,不鼓励捕捉InputMismatchException。
  • 最好不用try、catch来处理Error对象,但不并不建议,发生严重系统错误时,Java应用程序本身是无力回复的。
  • catch括号中列出的异常不得有继承关系,否则会发生编译错误。
  • 使用堆栈追踪前提是程序代码中不可有私吞异常的行为,例如在捕捉异常后什么都不做。
  • 在使用throw重抛异常时,异常的追踪堆栈起点,仍是异常的发生根源,而不是重抛异常的地方。
  • 如果想要让异常堆栈起点为重抛异常的地方,可以使用fillInStackTrace方法,这个方法会重新装填异常堆栈,将起点设为重抛异常的地方,并返回Throwable对象。
  • 使用断言注意:
    • 断言客户端调用方法前,已经准备好某些前置文件(通知在private方法之中)。
    • 断言客户端调用方法后,具有方法承诺的结果。
    • 断言对象某个时间点下的状态。
    • 使用断言取代批注。
    • 断言程序流程中绝对不会执行到的程序代码部份。
  • 最后一定要关闭资源。
  • 无论try区块中有无发生异常,若撰写finally区块,则finally区块一定会被执行。
  • 想要尝试自动关闭资源的对象,是撰写在try之后的括号中,如果无须catch处理任何异常,可以不用撰写,也不用撰写finally自行尝试关闭资源。
  • 尝试关闭资源与法也可以同时关闭两个以上的对象资源,只要中间以分好分隔。
  • try的括号中,越后面撰写的对象会越早被关闭。

Chapter9

  • 如果想要收集时具有索引顺序,实作方式之一就是使用数组,而以数组实作List的就是java.util.ArrayList。
  • List是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序 。
  • LinkedList在实作List接口时,采用了链结(Link)结构 。
  • 想要指定索引随机存取对象时,链结方式都得使用从第一个元素开始查找下一个元素的方式,会比较没有效率,像排序就不适合使用链结实作,链结的每个元素会参考下一个元素,这有利于调整索引顺序 。
  • Java中许多要判断对象是否重复时,都会呼叫hashCode()与equals()方法 。

教材学习中的问题和解决过程

  • P229的代码中console.next()怎么用?
  • 以前看的有点忘了,在书的P87有介绍:

如果直接取得上一个字符串(以空格或换行分隔),则使用next(),如果想取得用户输入的整行文字,则使用nextline()(以换行分隔)。

代码调试中的问题和解决过程

  • 按照书上的代码敲,怎么也通过不了编译。

  • 反复看了代码之后做了改变

代码托管

上周考试错题总结

  • 使用JDB进行调试时查看源代码的命令是(list)。
    • 对JDB掌握不够。没有认真学习。
  • System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”.。
    • 对字符串那块没有及时复习。
  • 可以用父类声明对象引用,用子类生成对象,但需要强制类型转换。(X)
    • 概念没有理解透彻。
  • 父类的protected方法,在子类中可以override为public的方法。(OK)
    • 对protected没有掌握。
  • 父类中有个public void fight(),子类中有个public void fight( Weapon w),这两个方法的关系是Override.(X)
    • 没有理解override 。
  • Math中的abs()方法可以Override.(X)
    • 不了解abs().
  • 用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。
    • 因为概念掌握不是很牢固,前面写的太慢了,所以这题没有来得及写完。
  • 面向对象中,设计经验可以用(设计模式)表达
    • 因为概念掌握不是很牢固,前面写的太慢了,所以这题没有写。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分

点评模板:

  • 基于评分标准,我给本博客打分:12分。得分情况如下:
  1. 正确使用Markdown语法,加1分;
  2. 模板中的要素齐全,加1分;
  3. 教材学习中的问题和解决过程, 加2分
  4. 代码调试中的问题和解决过程, 加2分
  5. 本周有效代码超过300分行,加2分
    6 其他加分,加2分 :
  • 排版精美的加1分

  • 进度条中记录学习时间与改进情况的加1分

  • 参考示例

点评过的同学博客和代码

其他(感悟、思考等,可选)

  • 学习java的时间也有5周了,但是感觉前面知识点太多,最近忙着准备ctf,没有太多时间复习,导致Java的根基有点松动,上周考试成绩也是很不如意。对我而言,目前最重要的是更加合理地安排时间,及时复习前面的知识。
  • 借鉴ctf的学习经验,我认为首先促进我们学习Java的问题是要提起我们的兴趣,、。很多人打ctf一入门就看网上教学视频很是枯燥乏味,然后不会认真去学ctf。还记得去年暑假培训长亭科技的老赛棍陈坤说,平时没有目的的时候没有人愿意去学习,必须有实际地任务,当为了做题去学习,效率会特别高。我想如果我们现在能够以做项目为学习任务代替写博客,我们会更加有动力去学习Java。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 18/18 1/1 10/10
第二周 172/190 1/2 18/38
第三周 464/654 1/3 23/61
第四周 876/1530 1/4 28/89
第五周 831/2361 1/5 15/114

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:15小时

  • 改进情况:本周前几天硬盘出现了问题,电脑一直没有开机,所以没能够学习Java,在前几周出现了一次博客丢失的问题后,我及时进行备份,文件没有损失,知道周四硬盘寄到我花了将近两天时间进行系统迁移和硬盘恢复以还原电脑原来的状态。加上近几天准备ctf所以没有留下充足时间进行学习Java.这周学习任务很重,我没有用足够的时间学习,实际学习时间很有待于提高。

  • 有空多看看现代软件工程 课件 软件工程师能力自我评价表

参考资料

posted @ 2017-03-26 23:42  0**  阅读(173)  评论(3编辑  收藏  举报