提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、常用类补充
1.Arrays类
1) 介绍:Arrays里面包含了一系列用于管理和操作数组的静态方法。
2) 方法:
- toString:返回数组的字符串形式。
- sort排序。
- binarySearch通过二分搜索法查找。(要求该数组必须有序的)
- copyOf数组元素的复制。
- fill数组元素填充。
- equals比较两个数组元素内容是否完全一致。
输出
2.BigInteger和BigDecimals 类
(1) 介绍:BigInteger适合保存比较大的整数,BigDecimal适合保存精度更高的小数。
(2) 方法
- add加
- subtract减
- multiply乘
- divide除
代码:
BigDecimals用法同理。
二、异常
- 基本概念
Java中,将程序执行中的不正常状态称为异常,分为编译时异常和运行时异常。
1) 编译时异常是编译器必须要求处理的异常,否则无法通过编译。
2) 运行时异常,编译器检查不出来,是程序员避免出现的异常,如果全部处理,可能会降低程序的运行效率,所以可以不做处理。 - 常见的运行时异常
- NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
- ArithmeticException:当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类异常。
- ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于数组的大小, 抛出该异常。
- ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常。
- NumberFormatException:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
3.异常处理
(1) try-catch处理方式
try{
可能有异常的代码。
}catch(Exception e){
如果捕获到异常
- 系统将异常封装成Exception的对象e,传递给catch。
- 得到异常后,交给程序员处理。
如果没有出现异常,则catch语句不执行。
}finally{
不管try代码块中是否有异常发生,都要执行finally。
}
案例:
(2) throws
介绍:显示的声明抛出异常,在出现异常的方法中不对这些异常进行处理,而是由该方法的调用者负责处理。在方法声明中用throws语句可以声明抛出的异常列表,可以是该方法产生的异常类型,也可以是它的父类。
例如:
数据类型 方法名(形参列表) throws 异常类1 ……, 异常类n {
方法体;
}
(3) throw:手动生成异常对象的关键字,在方法体中声明,后面跟着异常对象。
三、集合
(1) 介绍:可以动态保存任意多个对象,使用方便,提供了一系列操作对象的方便方法。
(2) 结构
1.Collect接口
1) collection的实现子类可以存放多个元素,每个元素可以是Object。
2) Collection的实现子类,有些是List(有序的),有些是Set(无序的)。
3) Collection接口没有直接的实现子类,通过子接口Set和List实现的。
(1)List接口
介绍:是Collection接口的子接口。
1) List集合类中的元素有序且可以重复。
2) List集合中的每个元素都有其对应的顺序索引。
3) List容器中的元素都对应一个整数序号来标记起在容器中的位置,可以根据序号来存取容器中的元素。
- 实现子类:Arraylist,Vector,LinkedList
1) Arraylist:底层是一个Object类型的可变数组,线程不安全,效率高。
2) Vector:底层也是Object类型的可变数组,线程安全,效率不高。
3) LinkedList:底层维护了一个双向链表,线程不安全,增删的效率较低,改查的效率较高。
(2)遍历方式
- 迭代器
(1)介绍
1) Iterator对象成为迭代器,用于遍历集合中的元素。
2) Collection接口的集合类中都有一个iterator()方法,可以返回一个迭代器。
(2)执行原理:
1) next() 将下移以后集合位置上的元素返回。
2) hasnext():判断是否还有下一个元素。(在iterator.next()前必须要调用iterator.hasnext()进行检查)
- for循环增强
1) 介绍:增强for循环,可以代替iterator迭代器,只能用于遍历集合或数组。
2) 基本语法
For(元素类型 元素名:集合或数组名)
{
访问元素;
}
例如:
输出
(3)List接口的常用方法
- add(int i, Object o):在i位置插入o元素。
2.addAll(int i, Collection o):从 index 位置开始将 o 中的所有元素。 - get(int i):获取指定i位置的元素。
4.indexOf(Object o):返回 o在集合中首次出现的位置。
5.lastIndexOf(Object o):返回o在当前集合中最后一次出现的位置。 - remove(int i):移除指定i位置的元素。
- set(int i, Objecto):替换指定 i位置的元素为 o。
- subList(int i, intj):返回从i到j位置的子集合。(i=<a<j)
(4)Set接口
1) 无序,添加和取出的顺序不一样。
2) 不允许有重复元素,最多只能有1个null。
2.Map接口
(1)特点:以下特点事JDK8的Map接口特点
1) Map与Collection并列,用于保存具有映射关系的数据:Key-Value。
2) Key不允许重复,只能有一个null。
3) Value可以重复。
4) 通过指定的Key总能找到对应的Value。
(2)实现子类:HashMap、Hashtable、Properties
HashMap:Key不能重复,Value可以重复,线程不安全,效率高。
Hashtable:Key和Value都不能是null,使用方法和HashMap类似,线程安全,效率较低。
Properties:使用特点和Hashtable类似,用于从文件中加载数据到类对象上。
(3)Map接口常用方法
- Put:添加或替换。
- remove:根据键删除映射关系。
- get:根据键获取值。
- size:获取元素个数。
- isEmpty:判断个数是否为0。
- clear:清除 k-v。
- containsKey:查找键是否存在。
(3) 遍历方式
先取出所有的 Key ,通过 Key 取出对应的Value。