教材学习内容总结

  • Java语言中所有的错误都会包装为对象。使用trycatch可以对对象做处理。

  • 设计错误对象都继承自java.lang.Throwable类。Throwable定义了取得错误信息,堆栈追踪等方法。
    有两个子类:Java.lang.Error与java.lang.Exception

  • Exception或其子对象,但非属于RuntimeException或其子对象,称为受检异常。

  • 在catch区块进行完部分错误处理之后,可以使用throw将异常抛出。

  • 无论try区块中有无异常发生,若撰写有finally区块,则finally区块一定会被执行

  • collection API。

    Java的Collection API都支持泛型

  • java中许多要判断对象是否重复时,都会调用hashCode()与equals()方法。

  • Map API

  • 如果想要取得Map中的所有键,可以调用Map的keySet()返回Set对象。由于键是不重复的。如果想取得Map中所有的值,则可以使用values()返回Collection对象。

 static void forEach(Collection collection) {
        Iterator iterator = colleciton.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
static void forEach(Iterable iterator) {
        for(Object o: iterable){
            System.out.println(o);
        }
    }

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

  • 问题1:collection架构与Map架构的相同以及不同之处?
  • 问题1解决方案:通过看资料以及网上寻找答案,初步解决。
  • 都是集合类的接口。
    但是Collection是存储一组数据的,比如Set,List,Queue.这些接口都是继承Collection的。
    而Map是按键值对存储的,有key和value,关注点在key的使用。
  • 问题2:set,list,map类接口的区别。
  • 问题2解决方案:收集资料,解决问题。
  • java.util.Set接口及其子类,set提供的是一个无序的集合;

    java.util.List接口及其子类,List提供的是一个有序的集合;

    java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构

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

  • 问题1:编译过程中出现collection.java使用了未经检查或不安全的操作,请使用 -Xlint:unchecked 重新编译

  • 问题1解决方案: 不影响程序运行。出现问题的原因在于泛型。
    解决方案为在定义前加@SuppressWarnings("unchecked")

  • 问题2解决方案:XXXXXX

  • ...

代码托管

  • 代码提交过程截图


上周考试错题总结

  • 使用JDB进行调试时查看源代码的命令是(list)

  • 10&9 的结果是 8

  • ”Hello”.charAt(1) 的值是(‘e’)

  • XX是一个引用型变量,System.out.println(XX)等价于System.out.println(XX.toString())

  • 抽象类的子类可以是抽象类也可以不是

  • ”Hello”.substring( 0,2 )的值是“He”

  • 实现一个类中的equals()方法时,一定要同时实现(hashCode())方法

  • 接口中 int STOP等价于public static final int STOP

  • 面向对象中,设计经验可以用(设计模式)表达

  • 用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})

  • 父类和子类要有(ISA 或“是一种”)关系

结对及互评

  • 结对 [20155216](http://www.cnblogs.com/LeeX1997/)

  • 点评:李玺同学一周打的代码非常多,每天的有效代码量在100行以上,值得我们学习。
    同时,也按照了模板和Markdown写博客。
    不足之处在于没有对代码进行更多的创新,在Java的学习中投入了太多时间。

评分标准

  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分

点评模板:

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

  • 参考示例

点评过的同学博客和代码

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

对于Java程序中出现的错误有了新的认识和更深的体会,对于异常处理有了理解。

各种不同类型的API标准了JAVA。

API对于Java和对于Java的学习来说,都是尤其重要的。

不断敲代码能积累经验,包括避免输入、语法错误。处理异常错误,可以使用JDB调试程序。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/4 8/12
第二周 70/80 2/5 16/28
第三周 120/200 3/6 12/40
第四周 300/500 4/7 20/60
第五周 500/1000 5/8 15/75 学会了使用手机软件,网络资源帮助自己学习。

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

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

  • 计划学习时间:20小时

  • 实际学习时间:15小时

  • 改进情况:代码量较之前有增进

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

参考资料