学号 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,作用是收集对象,并以索引方式保留收集对象顺序。除了课本上的内容,我还查到了这个:
代码调试中的问题和解决过程
- 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分)
-
从0分加到10分为止
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
代码调试中的问题和解决过程, 一个问题加1分
-
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
6 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
7 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
点评模板:
基于评分标准,我给本博客打分:9 。得分情况如下:
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 加2分
- 代码调试中的问题和解决过程, 加2分
- 本周有效代码超过300分行,加2分
- 其他加分,加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小时