Java常用类库

目录

 前言

一、Objects

1.1 、checkIndex

1.2、checkFromToIndex

1.3、checkFromindexSize

1.4、equals

1.5 toString

1.6、Null

二、Math

三、Arrays

3.1、 toString

3.2 、sort

3.3、binarySearch

3.4、copyOf

四、总结



 前言

       下面主要介绍,Java中常用的几个类库,每个类库都包含有多种实用的方法,以便我们对数据进行操作。下面就重点介绍一些常用类库,想了解更多、更全面的类库及其方法,可以去API文档查看。

一、Objects

        Objects     继承了  Object      。

        此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。

        这些实用程序包括nullnull方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。

   下面开始介绍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”

                     API文档

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新计划

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值