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

时间:2023-12-21 12:09:02

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

教材学习内容总结

  • 1.Java中的所有不正常类都继承于Throwable类。Throwable主要包括两个大类,一个是Error类,另一个是Exception类;

  • 2.其中Error类中包括虚拟机错误和线程死锁,一旦Error出现了,程序就彻底的挂了,被称为程序终结者;-

  • 3.Exception类主要指编码、环境、用户操作输入出现问题,Exception主要包括两大类,非检查异常(RuntimeException)和检查异常(其他的一些异常)

  • 4.RuntimeException异常主要包括以下四种异常:空指针异常、数组下标越界异常、类型转换异常、算术异常。

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

  • 问题1:重载和重写的区别
  • 问题1解决方案:
    1.重写必须继承,重载不用。
    2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
    3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
    4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常
  • 问题2:运行时异常和检查异常到底有什么区别
  • 问题2解决方案:
    运行时异常也叫非检查异常,比如常见的NullPointException,ClassCastException。这种异常可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。与其相对的,检查异常是强制需要用户处理的异常。详参:http://blog.csdn.net/swpihchj/article/details/8058129

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

  • 问题1:为什么发现了异常不解决它,而要抛出呢?
  • 问题1解决方案:假如说A方法掉调用-->B方法调用-->C方法。
    然后在B和C方法里定义了throws Exception. A方法里定义了Try Catch。
    那么调用A方法时,在执行到C方法里出现了异常,那么这个异常就会从C抛到B,再从B抛到A.
    在A里的try catch就会捕获这个异常,然后你就可以在catch写自己的处理代码。
    如果A里也是throws Exception,那么会一直向外抛异常,最后抛给Object,也就是java 虚拟机来处理。
  • 问题2:为什么当时出现了异常不去处理呢?
  • 问题2解决方案:1.你业务逻辑调用的是A方法,你执行了A方法,当然要在A里得到异常,然后来处理。如果在C里面就处理异常,这就破坏程序结构了。
    2.A调用了C方法,假如还接着也调用了D,E,F方法,假如他们都有可能抛出异常,你说是在A里面获得处理一次好,还是在C,D,E,F得到了异常,每个都当时处理一下的好?
    当时就处理异常理论上也是可以的,而且大多数时候,到底在哪处理异常,是要根据需求和项目的具体情况的。

代码托管

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

上周考试错题总结

    1. 填空:使用JDB进行调试时查看源代码的命令是(list)。
    1. 填空 :10&9 的结果是(8)
    1. 填空:”Hello”.charAt(1) 的值是(‘e’)
    1. 填空:System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”..
    1. 填空:”Hello”.substring( 0,2 )的值是“He”
    1. CH06 判断:抽象类的子类可以是抽象类也可以不是。(OK)
    1. CH06 判断:被声明为protected的方法,只能中继承后的子类中访问。(X)
    1. CH06 判断:父类的protected方法,在子类中可以override为public的方法。(OK)
    1. CH06 判断:Math中的abs()方法可以Override.(X)
    1. CH07 填空:用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。
    1. CH07 填空:面向对象中,设计经验可以用(设计模式)表达

结对及互评

20155324

评分标准

  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分

点评模板:

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

  • 参考示例

点评过的同学博客和代码

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

  • 路漫漫其修远兮,吾将上下而求索。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 50/50 3/0 20/20
第二周 100/150 1/4 20/40
第三周 150/300 1/5 20/60
第四周 300/700 1/6 20/80
第五周 300/1000 1/7 10/90

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

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

  • 计划学习时间:15小时

  • 实际学习时间:10小时

  • 改进情况:

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

参考资料