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

学号 2006-2007-2 《Java程序设计》第5周学习总结

教材学习内容总结

第八章

  • 尝试捕捉错误对象,try,catch。
  • 如何抛出错误对象,throw语法。
  • error代表系统错误,exception表示程序本身设计错误。
  • 如果某个方法声明会抛出Throwable 或子类实例,只要不是属于Error、java.lang.RuntimeException或其子类实例,你就必须明确使用try、catch语法加以处理,或者用throws声明这个方法会抛出异常,否则会编译失败。
  • 规则表示式:“\d*”,表示检查字符串中的字符是不是数字。
  • 如果父类异常对象在子类异常对象之前被捕捉,则catch子类异常的区块永远不会被执行。
  • 多重捕捉语法
  • 堆栈追踪,了解异常发生的根源。

第九章

  • Java.util.List:记录对象索引位置,并可依索引取回对象。
  • java.util.Queue:收集对象时以队列方式。
  • list是一种collection,作用是收集对象,并以索引方式保留收集对象顺序。
  • Arraylist,数组在内存中会是连续的线性空间,根据索引存取时速度快。但如果需要调整索引顺序时会有较差表现。
  • 链接结构,list。
  • 使用node封装新增对象。
  • 泛型语法,generics.
  • Lamade表达式,它的语法省略了接口类型和方法名称。 ->左边是参数列,右边是方法本体。

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

第六章

  • 1问题:受检异常和非受检异常的区别是什么?
  • 1回答: RuntimeException和它的子类以及Error和 它的子类都是非受检异常。
    因此,对于一个方法抛出RuntimeException和它的子类或者Error和它的子类。调用它无需进行异常处理,编译器能通过。
    除此之外的其它异常类都需要进行异常处理,即添加try-catch(-finally)语句块进行捕捉和处理。

参考非受检异常(运行时异常)和受检异常的区别等

第七章

  • 问题:链接结构是怎样的?
  • 回答:LinkList内部以一个List实现链表,比较适合需要频繁对链表进行操作的情况,对链表节点的访问时间与链表长度有关O(N)。我还在网上查到了这个。list是一种collection,作用是收集对象,并以索引方式保留收集对象顺序。除了课本上的内容,我还查到了这个:

Java实现链表结构

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

  • 1问题:我的代码如下:

结果一直在报错,如下:

  • 1解决方案:
    刚开始我以为是我没有那个安装包,或者安装包配置有问题,所以在网上找了很多资料,比如下面这些:

结果后来才发现,根本就是我打错了,util打成了utll。修改之后编译就正确了。

  • 2问题:第七章我在打students.java的代码时,我的代码如下:

    然后我修改了好几次还是报错,情况如下:

  • 2解决方案:
    报错有两个,一个是方法声明无效,需要返回值类型;另一个则是说我缺少标识符
    1.构造方法的方法名跟类名一样,构造方法是没有返回值的。你这个类类名叫Student,所以,名为Student的方法应该为构造方法,而且是不能有返回值。
    “什么叫不能有返回值”,就是说没有返回值,甚至连void也不是。
    2.缺少标识符则是因为编写时出现了一些诸如“就是在写完class后直接写了应该写在main函数里的代码”之类的问题。解决方法就是在写入其它代码之间,别忘了加入 public static void main(String[] args){}。

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 4.填空:”Hello”.charAt(1) 的值是(‘e’)

charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法.charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.如: str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符.

  • 5.填空:System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”.

toLowerCase() 方法用于把字符串转换为小写。
语法:stringObject.toLowerCase()
返回值:一个新的字符串,在其中 stringObject 的所有大写字符全部被转换为了小写字符。

  • 12.CH06判断:父类中有个public void fight(),子类中有个public void fight( Weapon w),这两个方法的关系是Override.(X)
    概念不熟悉

  • 15.CH06 判断:被声明为protected的方法,只能中继承后的子类中访问。(X)

参考这个图可知除被本类或者派生类(子类)的成员函数访问外,还可以被本包内所有类访问

  • 16.CH06 判断:父类的protected方法,在子类中可以override为public的方法。(OK)

方法的重写必须满足以下要求(从方法的五要素来分析):

  • 要有继承;

  • 方法名,参数列表要相同;

  • 访问修饰符不能比父类窄;
    也就是说,父类的public方法在重写时,访问修饰符必须是public,因为public的范围最大,否则就不构成方法的重写,例如:对于父类protected的方法,在重写时可以用protected或public来修饰。

  • 18.CH06填空:在构造方法中调用本类的构造方法,要使用(this)关键字

概念不熟悉

  • 19.CH06填空:在构造方法中调用父类的构造方法,要使用(super)关键字

概念不熟悉。需加强课本的研读

  • 22.CH06 判断:Java中所有的对象都有equals方法。(OK)

  • 23.CH06填空:实现一个类中的equals()方法时,一定要同时实现(hashCode())方法

hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解请 参考 public int hashCode()返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

  • 30.CH07 填空:面向对象中,设计经验可以用(设计模式)表达。

结对及互评

评分标准(满分10分)

  1. 从0分加到10分为止

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

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

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

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

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

    • 一周提交次数少于20次的不加分

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

点评模板:

基于评分标准,我给本博客打分:9 。得分情况如下:

  1. 正确使用Markdown语法(加1分):
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程, 加2分
  4. 代码调试中的问题和解决过程, 加2分
  5. 本周有效代码超过300分行,加2分
  6. 其他加分,加1分 :代码Commit Message规范的加1分

点评过的同学博客和代码

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

我觉得这周我好像又没有了之前那种感觉已经适应了的状态,反而开始觉得课本上的内容难度增加了, 翻看了一下前面的内容,发现我遗漏和遗忘了很多东西,感觉自己应该加强复习,仔细研读课本,同时自己编写一些新的代码,可能效果会更好。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第二周 200/200 2/2 18/24
第三周 300/500 3/4 18/24
第四周 500/1000 4/7 22/24
第五周 515/1396 5/8 22/24
  • 计划学习时间:24小时

  • 实际学习时间:22小时

参考资料

posted @ 2017-03-26 17:19  xuanyan  阅读(335)  评论(7编辑  收藏  举报