20145122 《Java程序设计》第5周学习总结
教材学习内容总结
1.在Java中,异常分为受检查的异常,与运行时异常. 两者都在异常类层次结构中.
2.受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理, 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
3.运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。
4.如何使用try/catch块捕捉异常:将可能引发异常的代码节放在 Try 块中,而将处理异常的代码放在 Catch 块中。Catch 块是一系列以关键字 catch 开头的语句,语句后跟异常类型和要执行的操作。
5.用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。
6.throw是语句抛出一个异常。语法:throw (异常对象)。throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。throw是具体向外抛异常的动作,所以它是抛出一个异常实例。throw就是你把那个倾向变成真实的了。
7.throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)(修饰符)(方法名)([参数列表])[throws(异常类)]{......}。throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。throws说明你有那个可能,倾向。
8.Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。由Collection接口派生的两个接口是List和Set。
9.java为数据结构中的映射定义了一个接口java.util.Map.Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。
10.Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。
11.泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
教材学习中的问题和解决过程
教材p236上的代码还没有理解throws声明在哪些地方能用,哪些地方不能用。
package cc.openhome;
import java.io.*;
import java.util.Scanner;
public class FileUtil {
public static String readFile(String name) throws FileNotFoundException {
StringBuilder text = new StringBuilder();
try {
Scanner console = new Scanner(new FileInputStream(name));
while(console.hasNext()) {
text.append(console.nextLine())
.append('\n');
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
throw ex;
}
return text.toString();
}
}
本周代码托管截图
其他(感悟、思考)
这周需要掌握记忆的知识点很多,消化的不是很好,还是要继续努力,多多实践吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
第一周 | 100/100 | 2/2 | 10/10 | |
第二周 | 150/250 | 1/3 | 10/20 | |
第三周 | 100/350 | 1/4 | 10/30 | |
第四周 | 320/670 | 1/5 | 30/60 | |
第五周 | 700/1370 | 1/6 | 30/90 |
最新文章
- Django 之 models的 F() 和 Q() 函数
- IPython, Notebook, NumPy, SciPy, matplotlib 和其它
- angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?
- C# RSA PEM解密字符
- CSS3实现旋转的太极图(二):只用1个DIV
- U3D 飞机大战(MVC模式)解析--面向对象编程思想
- java_list<;String>; string[]拼接json
- node实现创建服务器获取wx jssdk签名
- JAVA面试题和答案
- 怎样禁止手机app 中页面有时候会把数字当做电话号码,从而自动进行打电话功能
- int ,long long等范围
- 监控EXPDP/IMPDP进度
- KTV项目之3个ListView的跳转和加载歌手图片
- Apache环境下配置多个站点的SSL证书
- IVideoWindow 在directshow采集链路中的使用
- 面向对象特征:封装、多态 以及 @propetry装饰器
- python3二元Logistics Regression 回归分析(LogisticRegression)
- November 01st, 2017 Week 44th Wednesday
- UML类图学习笔记
- ios中radiobutton