怎么弄一个网站平台,厦门微信商城网站建设,无锡企业网站建设报价,做商城网站可以个人备案Java异常处理机制
异常
异常的最高父类是 Throwable#xff0c;在 java.lang 包下。
Throwable 类的方法主要有#xff1a;
方法说明public String getMessage()返回对象的错误信息public void printStackTrace()输出对象的跟踪信息到标准错误输出流public void printSta…Java异常处理机制
异常
异常的最高父类是 Throwable在 java.lang 包下。
Throwable 类的方法主要有
方法说明public String getMessage()返回对象的错误信息public void printStackTrace()输出对象的跟踪信息到标准错误输出流public void printStackTrace(PrintStream s)输出对象的跟踪信息到输出流 spublic String toString()返回对象的简短描述信息
Throwable 类的子类有 Error 错误和 Exception 违例。
异常的捕获处理 当 Java 运行时系统接收到异常对象时会寻找能处理这一异常的代码并把当前异常对象交给其处理这一过程称为捕获异常。
try-catch
try 语句块
将可能出现异常的代码都放在 try 代码块中。try 语句块中发现异常剩下的语句将不再执行。
catch 语句块
在 catch 语句块中是对异常对象进行处理的代码。每个 try 语句块可以伴随一个或多个 catch 语句用于处理可能产生的不同类型的异常对象。通过 getMessage( ) 获取异常信息或 printStackTrace( ) 跟踪异常信息。
finally finally 关键字主要是和捕获异常的 try-catch 语句一起使用放在 finally 语句块中的内容表示无条件执行的部分也就是说不管程序有异常或没有异常都需要执行的部分。
企业面试时经常会提到的问题final、finally 和 finalize 的区别是什么
final 关键字是用来修饰属性、方法、类的。finally 关键字可以配合异常处理进行无条件执行操作。finalize 不是关键字是 Object 类中的一个方法是 Java 垃圾回收机制中进行资源释放的方法。
异常的抛出处理 Java 程序的执行过程中如出现异常会自动生成一个异常类对象该异常对象将被提交给 Java 运行时系统这个过程称为抛出异常。 throws 抛出的异常可以是 0 或多个也就是说声明方法时可以不抛出异常也可以抛出 1 个或多个。 throw 关键字后只能抛出一个确切的异常类对象而 throws 后可以抛出多个异常类而非 new 的对象。 throw 之后的只能是异常对象不能是其他对象也就是说不能这样写 throw new String(错误信息) 。
自定义异常
创建异常类只需满足以下两个要求
声明一个类需要继承 Exception 或是它的子类。提供至少 2 个构造方法一个无参构造器一个带参构造器参数需要包含传递的异常信息。 集合和泛型
集合框架 集合框架可以分为 Collection 和 Map 两类 Collection 接口 主要有三个子接口分别是 Set 接口、List 接口和 Queue 接口下面简要介绍这三个接口。 Set 接口 Set 实例用于存储一组不重复的无序的元素。 List 接口 List 实例是一个有序集合。程序员可对 List 中每个元素的位置进行精确控制可以根据索引来访问元素此外 List 中的元素是可以重复的。 Queue 接口 Queue 中的元素遵循先进先出的规则是对数据结构 “队列” 的实现。 Map接口 定义了存储和操作一组 “键key值value” 映射对的方法。 区别 Map 接口和 Collection 接口的本质区别在于Collection 接口里存放的是一系列单值对象而 Map 接口里存放的是一系列 key-value 对象。Map 中的 key 不能重复每个 key 最多只能映射到一个值。
Set接口无重复无序 Set 接口继承自 Collection 接口的主要方法。 boolean add(Object obj) 向集合中添加一个 obj 元素并且 obj 不能和集合中现有数据元素重复添加成功后返回 true。如果添加的是重复元素则添加操作无效并返回 false。 void clear() 移除此集合中的所有数据元素即将集合清空。 boolean contains(Object obj) 判断此集合中是否包含 obj如果包含则返回 true。 boolean isEmpty() 判断集合是否为空为空则返回 true。 Iterator iterator() 返回一个 Iterator 对象可用它来遍历集合中的数据元素。 boolean remove(Object obj) 如果此集合中包含 obj则将其删除并返回 true。 int size() 返回集合中真实存放数据元素的个数注意与数组、字符串获取长度的方法的区别。 Object[] toArray() 返回一个数组该数组包含集合中的所有数据元素。 HashSet
//创建一个HashSet对象存放学生姓名信息
Set nameSet new HashSet();
// 操作
System.out.println(添加王云是否成功 nameSet.add(王云));System.out.println(显示集合内容 nameSet);System.out.println(集合里是否包含南天华 nameSet.contains(南天华));System.out.println(从集合中删除\南天华\...);
nameSet.remove(南天华);System.out.println(集合里是否包含南天华 nameSet.contains(南天华));System.out.println(集合中的元素个数为 nameSet.size()); HashSet 是如何判断元素重复的 当向 HashSet 中增加元素时HashSet 会先计算此元素的 hashcode如果 hashcode 值与 HashSet 集合中的其他元素的 hashcode 值都不相同那么就能断定此元素是唯一的。否则如果 hashcode 值与 HashSet 集合中的某个元素的 hashcode 值相同HashSet 就会继续调用 equals() 方法进一步判断它们的内容是否相同如果相同就忽略这个新增的元素如果不同就把它增加到 HashSet 中。 TreeSet TreeSet 类在实现了 Set 接口的同时也实现了 SortedSet 接口是一个具有排序功能的 Set 接口实现类。TreeSet 集合中的元素是按字典顺序进行排列输出的。 常用方法
add() 方法为集合添加元素。toArray() 方法把集合中的所有数据提取到一个新的数组中。 // 创建整型数组Integer[] array new Integer[size];// 将集合元素转换为数组元素set.toArray(array);
List接口重复有序 List 是 Collection 接口的子接口List 中的元素是有序的而且可以重复。常用的 List 实现类是 ArrayList 和 LinkedList。 常用方法 void add(int index,Object o) 在集合的指定 index 位置处插入指定的 o 元素。 Object get(int index) 返回集合中 index 位置的数据元素。 int indexOf(Object o) 返回此集合中第一次出现的指定 o 元素的索引如果此集合不包含 o 元素则返回-1。 int lastIndexOf(Object o) 返回此集合中最后出现的指定 o 元素的索引如果此集合不包含 o 元素则返回-1。 Object remove(int index) 移除集合中 index 位置的数据元素。 Object set(int index,Object o) 用指定的 o 元素替换集合中 index 位置的数据元素。 ArrayList 类 数组顺序表在插入或删除数据元素时需要批量移动数据元素故性能较差但在根据索引获取数据元素时因为数组是连续存储的所以在遍历元素或随机访问元素时效率高。 ArrayList 实现类的底层就是数组因此 ArrayList 实现类更加适合根据索引访问元素的操作。 LinkedList 类 LinkedList 的底层是链表。LinkedList 和 ArrayList 在应用层面类似只是底层存储结构上的差异导致了二者对于不同操作存在性能上的差异。这其实就是顺序表和链表之间的差异。一般而言对于 “索引访问” 较多的集合操作建议使用 ArrayList 实现类而对于 “增删” 较多的集合操作建议使用 LinkedList 实现类。
泛型 泛型是指在定义集合的同时也定义集合中元素的类型需要 “ ” 进行指定其语法形式如下
集合数据类型 引用名 new 集合实现类数据类型 (); 在定义集合的同时使用泛型用 “ ” 进行指定集合中元素的类型后再从集合中取出某个元素时就不需要进行类型转换不仅可以提高程序的效率也让程序更加清晰明了易于理解。
Iterator 接口 Iterator 接口为遍历集合而生是 Java 语言解决集合遍历的一个工具。 iterator() 方法定义在 Collection 接口中因此所有单值集合的实现类都可以通过 iterator() 方法实现遍历。 Iterator 接口的三个方法 boolean hasNext() 判断是否存在下一个可访问的数据元素。 Object next() 返回要访问的下一个数据元素通常和 hasNext() 在一起使用。 void remove() 从迭代器指向的 Collection 集合中移除迭代器返回的上一个数据元素。
Integer[] infos {12,45,23,86,100,78,546,1,45,99,136,23};
Set s new TreeSet();
for (Integer i : infos) {s.add(i);
}// 使用迭代器遍历集合数据
Iterator it s.iterator();
while(it.hasNext()) {System.out.println(it.next());
}
Map接口 Map 接口用于保存具有映射关系的键值对数据。 MapK,V 接口中的 key 和 value 可以是任何引用类型的数据key 不允许重复value 可以重复key 和 value 都可以是 null 值但需要注意的是key 为 null 只能有一个value 为 null 可以多个它们之间存在单向一对一关系也就是说通过指定存在的 key 一定找到对应的 value 值。 常用方法 Object put(Object key,Object value) 将指定键值对key 和 value添加到 Map 集合中如果此 Map 集合以前包含一个该键 key 的键值对则用参数 key 和 value 替换旧值。 Object get(Object key) 返回指定键 key 所对应的值如果此 Map 集合中不包含该键 key则返回 null。 Object remove(Object key) 如果存在指定键 key 的键值对则将该键值对从此 Map 集合中移除。 Set keySet() 返回此 Map 集合中包含的键的 Set 集合。在上面的程序最后添加下面的语句System.out. println(domains.keySet());则会输出[com, edu, org, net]。 Collection values() 返回此 Map 集合中包含的值的 Collection 集合。在上面的程序最后添加下面的语句System.out.println(domains.values());则会输出[工商企业教研机构非营利组织网络服务商]。 boolean containsKey(Object key) 如果此 Map 集合包含指定键 key 的键值对则返回 true。 boolean containsValue(Object value) 如果此 Map 集合将一个或多个键映射到指定值则返回 true。 int size() 返回此 Map 集合的键值对的个数。 IO和XML
File 类 Java反射机制 Java多线程机制 Java网络编程API Java注解 Junit测试框架 JDK8与函数式编程