(1)Map集合 (2)异常机制 (3)File类 (4)I/O流
1.Map集合(重点)
1.1 常用的方法
Set<Map.Entry<K,V>> entrySet() - 用于将Map集合转换为Set集合。
其中Map.Entry<K,V>是来自java.util包中的接口,常用方法如下:
K getKey() - 用于获取当前接口类型引用中的key值并返回。
V getValue() - 用于获取当前接口类型引用中的value值并返回。
Set<K> keySet() - 用于将Map集合中所有的键放入Set集合中并返回。
2.异常机制(重点、简单)
2.1 基本概念
java.lang.Throwable类是Java语言中所有错误(Error)或异常(Exception)的超类。
其中错误主要指在运行阶段出现的严重问题,通常无法通过编程解决,如:JVM挂掉。
其中异常主要指在运行阶段出现的不太严重的问题,通常可以编程解决,如:零做除数。
2.2 异常的分类
java.lang.Exception类是Java语言中所有异常的超类,具体分类如下:
RuntimeException类 - 运行时异常,也叫作非检测性异常
IOException和其它异常类 - 其它异常,也叫作检测性异常
- 所谓检测性异常就是指在编译阶段可以被编译器检查出来并报错的异常。
RuntimeException类的主要子类:
ArithmeticException - 算术异常
ArrayIndexOutOfBoundsException - 数组下标越界异常
NullPointerException - 空指针异常
ClassCastException - 类型转换异常
NumberFormatException - 数字格式异常
注意:
当程序执行过程中发生异常又没有手动处理时,则Java虚拟机采用默认方式处理,而默认处理方式就是:打印异常名称、异常原因、异常发生的位置,最后终止程序的执行。
2.3 异常的避免
对于绝大多数异常来说,都可以使用if()条件判断避免异常的发生。
2.4 异常的捕获
(1)语法格式
try{
编写所有可能发生异常的语句;
}
catch(异常类型 引用变量名){
编写针对该类型异常的处理语句;
}
... ...
finally{
编写无论是否发生异常都应该执行的语句;
}
(2)注意事项
当try{}中可能发生多种异常时,则应该编写多个catch分支,切记小类型放在大类型上面。
懒人的写法:
catch(Exception e){
e.printStackTrace(); //用于打印异常名称、原因、发生位置等信息。
}
finally{}中通常用于编写进行善后处理的语句,比如:关闭已经打开的文件等。
(3)执行流程
try{
a;
b; - 可能发生异常的语句;
c;
}
catch{
d;
}
finally{
e;
}
当程序没有发生异常时的执行流程:a b c e
当程序中发生异常时的执行流程: a b d e
2.5 异常的抛出
(1)基本概念
当程序中出现的异常无法处理或不便于处理时,则应该将该异常转移给该模块的调用者,这种方式叫异常的抛出。
(2)语法格式
访问控制符 返回值类型 方法名(形参列表) throws 异常类型1,异常类型2,...{}
如:
public void show() throws IOException {}
(3)方法重写的主要原则
a.要求方法名、参数列表和返回值类型相同,从jdk1.5开始允许返回子类。
b.访问权限不能变小,可以相等或者变大。
c.不能抛出更大的异常。
注意:
子类中重写的方法可以抛出和父类一样的异常、更小的异常以及不抛出异常,但不能抛出更大的异常、同级不一样的异常。
2.6 自定义异常
(1)自定义异常的由来
当程序中需要表达年龄不合理的异常时,Java官方并没有提供针对该业务的异常类型,此时若希望专门使用一个表达年龄不合理的异常,则需要程序员自定义异常类。
(2)基本流程
a.自定义xxxException类继承Exception类或者其子类;
b.在该类中提供两个版本的构造方法,一个是无参的构造方法,另外一个是字符串
做参数的构造方法。
(3)异常对象的抛出
throw new 异常类型();
如:
throw new AgeException();
3.File类(重点)
3.1 基本概念
java.io.File类用于描述文件和目录的相关信息,可以获取大小、最后一次修改时间等信息
3.2 常用的方法
File(String pathname) - 根据参数指定的路径信息来构造对象。
boolean exists() - 用于判断调用对象所表示的文件或目录是否存在。
String getName() - 用于获取文件或目录的名称。
long length() - 用于获取文件的长度/大小。
long lastModified() - 用于获取最后一次修改时间。
String getAbsolutePath() - 用于获取绝对路径信息并返回。
绝对路径 - 主要指以根目录开始的路径信息,如:c:/... d:/... /
相对路径 - 主要指以当前工作目录开始的路径信息,如:./code
- 以后的开发中推荐使用相对路径信息。
boolean delete() - 用于删除文件/目录。
boolean createNewFile() - 用于创建新的空文件。
boolean mkdir() - 用于创建单层目录。
boolean mkdirs() - 用于创建多级目录。
File[] listFiles() - 用于获取当前目录中的所有内容并返回。
boolean isFile() - 用于判断调用对象是否为一个普通文件。
boolean isDirectory() - 用于判断调用对象是否为一个目录。
(1)Map集合 (2)异常机制 (3)File类 (4)I/O流的更多相关文章
- (1)Set集合 (2)Map集合 (3)异常机制
1.Set集合(重点)1.1 基本概念 java.util.Set接口是Collection接口的子接口,与List接口平级. 该接口中的元素没有先后放入次序,并且不允许重复. 该接口的主要实现类:H ...
- File类与常用IO流第四章——IO字节流
一切文件在存储时,都是以二进制数字的形式保存的,都是一个一个字节.无论使用什么样的流对象,底层传输的始终是二进制数据. 字节输出流 OutputStream java.io.OutputStream ...
- JAVA基础--JAVA 集合框架(泛型、file类)16
一.集合总结 集合:Collection体系.Map体系. Collection体系:单列集合的共性操作规则. List:列表,可以重复,有下标,拥有特有的迭代器ListIterator. Array ...
- JAVA基础--JAVA 集合框架(泛型、file类)
一.集合总结 集合:Collection体系.Map体系. Collection体系:单列集合的共性操作规则. List:列表,可以重复,有下标,拥有特有的迭代器ListIterator. Array ...
- Map 集合 和 String 字符串相互转换工具类
package com.skynet.rimp.common.utils.util; import java.util.Arrays; import java.util.HashMap; import ...
- File类与常用IO流第七章——Properties集合
Properties概述 java.util.Properties extends Hashtable<k,v> implements Map<k,v> Properties类 ...
- File类与常用IO流第一章File类
第一章:File类 一.1个重点单词: file:文件:directory:文件夹/目录:path:路径(绝对路径:absolutePath) 二.4个静态成员变量: 1.static String ...
- File类与常用IO流第八章——缓冲流
第八章.缓冲流 缓冲流概述 缓冲流,也叫高效流,是对4个基本的FileXxx流的增强.按照数据类型分为4类: 输入缓冲流 输出缓冲流 字节缓冲流 BufferedInputStream Buffe ...
- -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
随机推荐
- git分支branch合并到主分支master
如何使用git将分支branch合并到主干master上 对于一人独立使用git进行系统开发时,branch分支相当于版本(Version),如果每次都将新的分支branch提交到GitHub上,则会 ...
- C# 谁改了我的代码
本文告诉大家一个特殊的做法,可以修改一个字符串常量 我们来写一个简单的程序,把一个常量字符串输出 private const string str = "lindexi"; sta ...
- Linux root用户不能通过SSH连接的问题
http://jingyan.baidu.com/article/fd8044fad48fc95031137a85.html 最近在虚拟机安装Ubuntu之后,通过普通ssh远程连接的时候明明输入了正 ...
- 腾讯云CentOS安装JDK1.8
购买了腾讯云CentOS7系统,尝试搭建一个博客平台,首先要安装JDK. 一开始尝试用本地FTP上传JDK包到服务器,速度太慢,只有10K左右,放弃. 然后决定在服务器直接下载JDK进行安装. 执行 ...
- tcpcopy简介
本文内容是整理自 王斌的博客(http://blog.csdn.net/wangbin579)和郑钧的博客(http://www.cnblogs.com/zhengyun_ustc),以便让自己可以有 ...
- idea创建maven的web工程
然后一路点next 接下去添加tomcat 成功 控制台出现乱码的话 输入:-Dfile.encoding=UTF-8 控制台乱码解决
- springmvc 配置多个数据源,并动态切换
前言:工作中经常会有两个数据源的情况,所以记录一下.这里测试两个数据源,给出流程和代码. 首先:配置两个数据源 <description>配置mybatis数据源</descript ...
- 使用display:none和visibility:hidden隐藏的区别
今天做毕设时遇到了一个小问题,我做了一个tab导航栏,点击一个tab页其它tab页隐藏,这时候第一想法是使用display:none来控制显示隐藏,写了之后发现使用display会有一个问题,就是第二 ...
- Evernote Markdown Sublime使用介绍
版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4002619.html 这一篇博客继续探讨:Evernote ...
- Surface电池阈值
Surface电池阈值 笔记本电脑一般都会提供一个电池保养的软件,其主要最用是让电池在插电情况下保持在50%-80%之间,以延长电池寿命,减少电池损耗.而微软自家的Surface却一直没有这个设置. ...