教材学习内容总结

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

最新文章

  1. Django 之 models的 F() 和 Q() 函数
  2. IPython, Notebook, NumPy, SciPy, matplotlib 和其它
  3. angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?
  4. C# RSA PEM解密字符
  5. CSS3实现旋转的太极图(二):只用1个DIV
  6. U3D 飞机大战(MVC模式)解析--面向对象编程思想
  7. java_list<String> string[]拼接json
  8. node实现创建服务器获取wx jssdk签名
  9. JAVA面试题和答案
  10. 怎样禁止手机app 中页面有时候会把数字当做电话号码,从而自动进行打电话功能
  11. int ,long long等范围
  12. 监控EXPDP/IMPDP进度
  13. KTV项目之3个ListView的跳转和加载歌手图片
  14. Apache环境下配置多个站点的SSL证书
  15. IVideoWindow 在directshow采集链路中的使用
  16. 面向对象特征:封装、多态 以及 @propetry装饰器
  17. python3二元Logistics Regression 回归分析(LogisticRegression)
  18. November 01st, 2017 Week 44th Wednesday
  19. UML类图学习笔记
  20. ios中radiobutton

热门文章

  1. java基础---->验证码的使用(一)
  2. CSS-布局样式之筛选条件右边线的处理方法(no CSS3)
  3. Docker 使用指南 (五)—— Dockerfile 详解
  4. bootstrap之辅助类
  5. 内网安全监控和预警平台架构设想(OSSIM)
  6. CentOS配置bond
  7. GOOGLE和百度的长域名
  8. 【Android】Android中不同手机分辨率适配问题
  9. nginx proxy模块
  10. oracle数据库实例状态