Arrays 操作数学的工具类
1.equals(数组1,数组2):比较两个数组是否相等
2.Arrays.toString(数组):返回数组内容的字符串表现形式
3.deepEquals(数组1,数组2) ; Arrays.deepToString(数组1,数组2):都用于多维数组
4.copyOf(int[] original,int newLength):original->要拷贝的数组 newLength->要截取的长度|新数组的长度(从索引为0的位置开始截取,如果截取过长会自动填充) 返回值:新数组
5.copyOfRange(int[] original, int from, int to):original->要拷贝的数组 from->起始位置 to->结束索引(不包含结束位置)
6.System-->static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
7.static void fill(数组,数据):填充 所有位置全部以指定数据填充
8.static void fill(int[] a,int fromIndex,int toIndex,int val):结束位置不包含
9.static void sort(int[] a):对指定的int型数组按数字升序进行排序
10.java中自定义对象类型进行排序,必须执行排序规则:
1:内部比较器|自然排序|自然比较方法--默认
实现 java.lang 接口 Comparable<T> 重写public int compareTo(T o);方法自定义比较规则
<T> 泛型,默认任意类型T 指定其他类型,比较指定的类型数据
2:外部比较器|自定义排序|自定义比较器
实现java.util 接口 Comparator<T> 重写 int compare(T o1, T o2) 比较用来排序的两个参数。
能达到解耦的效果,不能使用Person实现接口,外部实现
注意:可以根据比较规则不同的相减的顺序
异常 程序生病了
1.Error:错误,一般指虚拟机生成并脱出的,不用管
2.Exception:
编译时异常|检查时异常: 编译的时候就会发生异常,如果不处理无法运行的
运行时异常: 程序运行期间发生的异常,编译没有问题,一般通过增强程序的健壮性 if..else
3.如果出现异常:不处理都无法执行后续的代码
4.常见的运行时异常:
1.空指针 NullPointerException
2.数组下标越界 ArrayIndexOutOfBoundsException
3.数组长度负数异常 NegativeArraySizeException
4.数学异常 ArithmeticException
5.数字转换异常 NumberFormatException
6.类型转换异常 ClassCastException
5.throw 制造异常
异常的处理方式:
抛出异常:throws
遇到了异常不处理,向上一层抛出,在方法内部抛出到方法上面,谁调用方法谁处理
捕获异常:try..catch
try{
可能会出现异常的代码
}catch(要捕获的异常的数据类型 变量名){
如果出现异常要执行的代码
}catch(要捕获的异常的数据类型 变量名){
如果出现异常要执行的代码
}
...
catch(Exception e){
如果不是以上异常,执行这里的代码
}finally{
一般会定义一些资源的关闭..
}
注意:
1.如果使用try,必须跟catch
2.catch可以有一个可以存在多个
3.接收大范围类型的catch要放在最后,否则编译出错,因为代码从上倒下执行
4.finally最终的,无论是否出现异常,都会执行的代码
5.try中的内容,出现异常了,执行的对应的catch,try中的内容不会继续向下执行了
自定义异常类:
所有的异常都会直接或者间接继承自Exception,默认编译时异常,如果自定义异常类继承RuntimeException 是运行时异常
6.常用类:
字符串常用的方法
char charAt(int index)
int codePointAt(int index)
int codePointBefore(int index)
int compareTo(String anotherString) 按字典顺序比较两个字符串。
int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。
String concat(String str) 将指定字符串连接到此字符串的结尾。
boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
static String copyValueOf(char[] data) 把参数字符数组转为字符串
boolean endsWith(String suffix)
boolean startsWith(String prefix)
boolean startsWith(String prefix, int toffset) 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
boolean equalsIgnoreCase(String anotherString) 不考虑大小写
byte[] getBytes() 字符串转字节数组
byte[] getBytes("字符编码格式") 以指定的字符编码格式字符串转字节数组
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将字符从此字符串复制到目标字符数组。
int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str, int fromIndex) 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
int length() 返回此字符串的长度。
String replace(char oldChar, char newChar)
String[] split(String regex) 根据参数切割符切割字符串,返回字符串数组
String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。 结束位置不包含
char[] toCharArray() 将此字符串转换为一个新的字符数组。
String toLowerCase()
String toUpperCase()
trim() 去前后空格
static valueOf(参数) 任意参数转为字符串