20145305 《Java程序设计》第5周学习总结
教材学习内容总结
1.设计错误对象都继承自java.lang.Throwable类
2.Throwable有两个子类:java.lang.Error与java.lang.Exception
3.Error与其子类实例代表严重系统错误(硬件层面错误、JVM错误、内存不足等)
4.程序设计本身的错误,建议使用Exception或其子类实例来表现,通常称错误处理为异常处理
5.如果某个方法声明会抛出Throwable或子类实例,只要不属于Error或java.lang.RuntimeException或其子类实例,必须明确使用try、catch语法处理,或者在方法中用throws声明这个方法会抛出异常
6.Exception或其子对象,但非属于RuntimeException或其子对象,称为受检异常
7.执行时期异常,编译程序不会强迫一定得在语法上加以处理,也称非受检异常
8.多重捕捉语法仍需注意异常的继承,catch括号中列出的异常不得有继承关系
9.收集时记录每个对象的索引顺序,并可依索引取回对象,定义在java.util.List接口
10.收集的对象不重复,具有集合的行为,定义在java.util.Set接口
11.收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端,定义在java.util.Queue接口
12.对Queue的两端进行加入、移除等操作,定义在java.util.Deque
13.判断对象是否重复时,调用hashCode()与equals()方法,规格书中建议,两个方法必须同时操作
14.跟顺序有关的行为,通常要不对象本身是Comparable,要不就是另行指定Comparator对象告知如何排序
15.接口只有一个方法必须操作时,可以使用Lambda表达式取代匿名类语法
16.一般常用Properties的setProperty()指定字符串类型的键值,getProperty()指定字符串类型的键,取回字符串类型的值,通常称为属性名称与属性值
教材学习中的问题和解决过程
P269页中的程序中,还没有理解HashSet操作概念图中的哈希编码来判断是否重复的过程是什么意思
package cc.openhome;
import java.util.*;
class Student {
private String name;
private String number;
Student(String name, String number) {
this.name = name;
this.number = number;
}
@Override
public String toString() {
return String.format("(%s, %s)", name, number);
}
}
public class Students {
public static void main(String[] args) {
Set students = new HashSet();
students.add(new Student("Justin", "B835031"));
students.add(new Student("Monica", "B835032"));
students.add(new Student("Justin", "B835031"));
System.out.println(students);
}
}
本周代码托管截图
其他(感悟、思考等,可选)
这周实践部分做的也不是很好,因为马上就要放假了,掌控好自己的进度,努力跟上吧
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | 基本掌握JAVA |
第一周 | 200/200 | 1/2 | 20/20 | 了解基本的JAVA |
第二周 | 250/450 | 2/4 | 20/40 | 了解基础语法 |
第三周 | 500/950 | 1/5 | 20/60 | 了解JAVA语法核心 |
第四周 | 869/1819 | 1/6 | 30/90 | 了解继承、接口、多态的知识 |
第五周 | 918/2737 | 1/7 | 25/115 | 了解了很多异常处理的知识 |