20155332 2016-2017-2 《Java程序设计》第5周学习总结
学号 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得到了异常,每个都当时处理一下的好?
当时就处理异常理论上也是可以的,而且大多数时候,到底在哪处理异常,是要根据需求和项目的具体情况的。
代码托管
上周考试错题总结
-
- 填空:使用JDB进行调试时查看源代码的命令是(list)。
-
- 填空 :10&9 的结果是(8)
-
- 填空:”Hello”.charAt(1) 的值是(‘e’)
-
- 填空:System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”..
-
- 填空:”Hello”.substring( 0,2 )的值是“He”
-
- CH06 判断:抽象类的子类可以是抽象类也可以不是。(OK)
-
- CH06 判断:被声明为protected的方法,只能中继承后的子类中访问。(X)
-
- CH06 判断:父类的protected方法,在子类中可以override为public的方法。(OK)
-
- CH06 判断:Math中的abs()方法可以Override.(X)
-
- CH07 填空:用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。
-
- CH07 填空:面向对象中,设计经验可以用(设计模式)表达
结对及互评
评分标准
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
代码调试中的问题和解决过程, 一个问题加1分
-
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
-
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
-
扣分:
- 有抄袭的扣至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小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)