目录
前言
下面主要介绍,Java中常用的几个类库,每个类库都包含有多种实用的方法,以便我们对数据进行操作。下面就重点介绍一些常用类库,想了解更多、更全面的类库及其方法,可以去API文档查看。
一、Objects
Objects 继承了 Object 。
此类包含
static
实用程序方法,用于操作对象或在操作前检查某些条件。这些实用程序包括
null
或null
方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。下面开始介绍Objects类库下面的方法:
1.1 、checkIndex
使用格式: Objects.checkIndex(2,5) Objects.checkIndex(int index , int length)
作用 :检测index是否在 0 ~ length (左闭右开)范围内。
结果 :
- 如果index它在 0 ~ length 范围的范围内, 则返回index
- index 不在 0 ~ length 范围 ; index || length 的值小于0 ;两种情况下都会报IndexOutOfBoundsException异常
public class Sw { public static void main(String[] args) { try { System.out.println("第一个比较:\t"+Objects.checkIndex(7,10)); System.out.println("第二个比较:\t"+Objects.checkIndex(100,10)); }catch (IndexOutOfBoundsException e){ System.err.println(e.getMessage()); } }
1.2、checkFromToIndex
使用格式: Objects.checkFromToIndex(2,5,7)
Objects.checkFromToIndex(int fromIndex , int toIndex , int length)
作用 :检测 fromIndex ~ toIndex 这个序列,是否在 0 ~ length的范围里面 (左闭右开)
结果 :
- 如果fromIndex ~ toIndex 这个序列它在 0 ~ length 范围的范围内, 则返回 fromIndex
- 不在范围之内 ;fromIndex && length 两者之间任一一个小于0 ; fromIndex > toIndex ; toIndex > length ;都会报IndexOutOfBoundsException异常
public class Sw { public static void main(String[] args) { try { System.out.println(Objects.checkFromToIndex(3,6,10)); //正常返回情况 返回 fromIndex System.out.println(Objects.checkFromToIndex(-1,6,10)); //错误情况 fromIndex 小于 0 System.out.println(Objects.checkFromToIndex(3,6,-10)); //错误情况 length 小于 0 System.out.println(Objects.checkFromToIndex(3,1,10)); //错误情况 fromIndex 大于 toIndex System.out.println(Objects.checkFromToIndex(3,77,10)); //错误情况 toIndex 大于 length }catch (IndexOutOfBoundsException e){ System.err.println(e.getMessage()); } } }
1.3、checkFromindexSize
使用格式: Objects.checkFromIndexSize(2,5,7)
Objects.checkFromIndexSize(int fromIndex, int size, int length)
作用 :检测 fromIndex ~ (fromIndex+size) 这个序列,是否在 0 ~ length的范围里面 (左闭右开)
结果 :
- 如果 fromIndex ~ (fromIndex+size)这个序列它在 0 ~ length 范围的范围内, 则返回 fromIndex
- 不在范围之内 ;fromIndex || size || length 三者之间任一一个小于0 ; 情况下都会报IndexOutOfBoundsException异常
public class Sw { public static void main(String[] args) { try { System.out.println(Objects.checkFromIndexSize(1,6,7));// 正常情况 [ 1 , 7 ) 在范围之内 [ 0 , 7 ) System.out.println(Objects.checkFromIndexSize(1,7,7));// 错误情况 [ 1 , 8 ) 不在在范围之内 [ 0 , 7 ) System.out.println(Objects.checkFromIndexSize(-1,-6,-7));// 错误情况 任意一个 小于0 }catch (IndexOutOfBoundsException e){ System.err.println(e.getMessage()); } } }
1.4、equals
使用格式: Objects.equals (Object a,Object b)
作用 :判断 a && b 是否相等,是则返回true;反之 false。
Objects.equals(a,b) && a. equals(b) 的区别: 直接上源码
// Objects.equals 源码 public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); }
可以看出来,Objects.equals 相对于 equals,是先判断了a是否为空;因为a为空时:
- a. equals(b)就会报错, 出现空指针异常
- Objects.equals(a,b)则不会报错。
实例 :
public class Sw { public static void main(String[] args) { String s1 = null; String s2 = "Hello"; try { System.out.println(Objects.equals(s1, s2)); // 正常情况,但s1 && s2 不相等 返回false System.out.println(s1.equals(s2)); //错误情况 ,s1为空,会报错,空指针 怎么能调用方法呢 。空指针异常 }catch (NullPointerException e){ System.out.println(e.getMessage()); } } }
1.5 toString
Objects里面的toString,跟平常的toString不一样
使用格式: Objects.toString( Object a , String nullDefault) or
Objects.toString( Object a )
作用:Objects の toString 就是判断 这个对象a是否为空 ;
不空,返回该对象;
空,返回 null,有“String nullDefault”,则返回 “nullDefault”
代码实例,看一下 Objects.toString 与 toString 的区别:
package ss; import java.util.Objects; public class Sw { public static void main(String[] args) { New a = new New(); a.setS(5); New b = new New(); b = null; System.out.println(Objects.toString(b,"这是空的")); System.out.println(Objects.toString(b)); System.out.println(Objects.toString(a)); } } class New{ private int s; public int getS() { return s; } public void setS(int s) { this.s = s; } @Override public String toString() { return "New{" + "s=" + s + '}'; } }
实验结果:
1.6、Null
- Objects.isNull(Object obj)
obj是null,则返回true,反之。
- Objects.nonNull(Object obj)
obj是null,则返回false,反之。
- Objects.requireNonNull(T obj)
检查指定的对象引用是否不是null 。.3
如果是,则抛出自定义的
NullPointerException
。此方法主要用于在具有多个参数的方法和构造函数中进行参数验证,如下所示:
package ss; import java.util.Objects; public class Sw { public static void main(String[] args) { try{ New b = new New(); b = null; //b置空 New a = new New(b); //传入 空对象 }catch (NullPointerException e){ System.out.println(e.getMessage()); } } } class New{ private Object s; public New(Object s){ this.s = Objects.requireNonNull(s, "出错!!!该对象为空!!! "); } public New(){ } }
二、Math
类
Math
包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数。Math 也是继承了 extends。
使用方式: Math. 方法名(参数列表)
abs( a )
返回 a值的绝对值。 (int、long、float、double等等)
addExact(int x, int y)
返回其参数的总和,如果结果溢出
int
则抛出异常。
addExact(long x, long y)
返回其参数的总和,如果结果溢出
long
则抛出异常。
max(a,b)
返回a、b中值较大的 那个。按理传入的值,应为同一类型,不一样则自动向上强转。
min( a,b)
返回 a、b中值 较小的那个。 同一类型,否则自动向上强转
pow(double a, double b)
返回第一个参数的值,该值是第二个参数的幂。
pow(2,3) = 8.0
参数 自动强转 double类型
round(double a)
返回与参数最接近的
long
,并将关系四舍五入为正无穷大。round(float a)
返回与参数最接近的
int
,并将关系四舍五入为正无穷大。
sqrt(double a)
返回
double
值的正确舍入正平方根。sqrt(9) = 3.0
参数 自动强转 double类型
三、Arrays
Arrays 类库,是主要针对 数组 的一些操作
使用格式 : Arrays.方法名(参数列表)
3.1、 toString
又有一个 “toString”,跟前面不一样的是,这里的toString是以字符串形势返回数组内容。·
toString(a)
返回指定数组内容的字符串表示形式。 a为数组
3.2 、sort
sort(a, int fromIndex, int toIndex)
按升序对数组的指定范围进行排序。
- a : 数组
- fromIndex ~ toIndex :表现指定范围 排序
- : 没有,则全部排序
3.3、binarySearch
binarySearch,为Arrays里面 查找数组里面元素的方法。
使用格式: Arrays.
binarySearch(int[] a, int key)
作用:就是在 数组a里面,查找key元素,找到返回下标。
针对于该方法里面的参数,还有多种变化,大家可以去API文档查看。
public class Sw { public static void main(String[] args) { int[] arr = {5,6,7,2,66,7}; System.out.println(Arrays.toString(arr)); System.out.println(Arrays.binarySearch(arr,66)); } }
3.4、copyOf
copyOf,用于数组的扩容。
使用格式: Arrays.copyOf
(int[] a, int key)
作用:就是 将数组a,扩容至 key;该方法有返回值(类型与数组a相同)
针对于该方法里面的参数,还有多种变化,大家可以去API文档查看。
public class Sw { public static void main(String[] args) { int[] arr = {5,6,7,2,66,7}; System.out.println(Arrays.toString(arr)); System.out.println(arr.length); arr = Arrays.copyOf(arr,66); System.out.println(arr.length); } }
四、总结
对于Java常用类库,还有很多类、方法;这些知识点对我们后续的代码编写有很大的帮助,大家可以去查看API文档,查看相应的方法操作;以减少我们自己动手写代码的冗余度、复杂度。
下面 给大家一个API文档,仅供学习参考。 提取码“4565”