Java常用API(一)
API(Application Programming Interface)即:应用程序接口
概述:API就是在开发中Java为我们提供的各种类的接口,Java已经预先定义好了,目的就是为了给我们开发人员提供便捷。
目录
Object类
1.toString
2.equals
Arrays类
1.equals
2.sort
3.binarySearch
4.copyOf
5.fill
6.toString
Object类
Object类时所有的Java类的祖先(根基类)。
每一个类都使用Object类作为超类(父级)。
所有对象(包括数组)都继承实现这个类的方法。
所有的类在声明时如果没有使用extends关键字都会默认继承Object类
public class Person{
.....
}
//等价于
public class Person extends Object{
....
}
我们先来简单的说明一下Object类中的方法,我再来给大家写出具体的实现方式和注意事项
1.toString
toString返回值是String类型,可以以字符串的形式描述当前对象的有关信息,当我们需要通过字符串来具体输出一个对象的成员时我们可以使用toString来实现。
package demo;public class ToStringDemo {private int age;private String name;//我们创建一个构造age和name的方法,补充类public ToStringDemo(int age,String name){this.age = age;this.name = name;}
}package demo;public class ToStringDemoTast {public static void main(String[] args) {//创建ToString实例,并使用Object类toString来打印出类的具体信息ToStringDemo toStringDemo = new ToStringDemo(20, "张三");System.out.println(toStringDemo.toString());}
}

我们可以看到,我们的ToStringDemo中的类没有定义toString方法,但是我们还是可以使用,就是因为我们继承了Object类,使用的是Object类中的方法,但是它输出的结果并不符合我们的预期,我们可以看到,编译器输出的是一个地址和一段16进制数,马上我们按住ctrl键点击这个方法就能明白:
Object类中定义的就是得到类名加他的哈希地址,这并不是我们想看到的,所以我们要想输出我们想要的对象的具体内容就需要我们对Object类中的方法进行重写。
package demo;public class ToStringDemo {private int age;private String name;//我们创建一个构造age和name的方法,补充类public ToStringDemo(int age,String name){this.age = age;this.name = name;}@Overridepublic String toString() {String s = "age = "+age+" name = "+name;return s;}
}

我们可以看到,得到了我们想要的对象的具体内容
2.equals
equals方法,我们使用equals方法来表示两个成员变量是否相等,可以比较字符串也可以比较数字,他返回的是boolean类型的值,而我们知道,还有一个符号”==“号也可以比较两个变量是否相等,那么他们的区别是什么呢?既然有了“==”号我们为什么还要用equals方法呢?
其实,“==”号并不是用来检测两个变量是否相等,他只是比较了变量的地址是否相等,下面我们来用一个特例来演示一下看看结果如何:

运行结果如下:
我们可以看到:虽然变量的内容相等但是输出结果却是不相等
我们这是因为“==”判断的是两个变量的地址是否相等,我们创建了两个Sting类型的变量,自然地址是不相等的
我们来看一下object类中的equals是怎么写的:

可以看到是直接用的简单粗暴的双等号,这样写肯定会引发一系列问题,所以就需要我们继承obje方法后对equals方法进行重写,我们来看一下Sting类里面进行修改后的equals的表现
我们修改一下代码,通过equals来比较一下

得到的运行结果:

这是因为equals内部是比较变量内部的值是否相等。
下面我们来按住ctrl键点击equals方法来分析一下他的源代码:

Arrays类
1.equals
和Sting类相同,Arrays也对object类中的equals方法进行了重写,实现了比较两个数组是否相等的功能,我们来进入看一下他的代码实现:

输出结果:

我们点击equals查看分析一下源码:

2.sort
对数组进行排序
sort()对指定数组进行排序
内部有两个变量:
fromIndex开始位置
toIndex结束位置
如果我们没有为排序添加开始和结束位置就是默认全部排序。
排序不包括结束位置,下面代码来演示一下


可以看到第二个数组只把前四个数排序了
3.binarySearch
二分查找,二分查找是一种非常简洁且快速的查找方式,它可以大大减少我们查找的时间

相信你看完代码之后会发现一个问题,二分查找似乎只适用于纯数字的数组,而且数组的数字还是要排序好的,所以我们需要先调用前面我们调用的sort方法先给数组排序再进行使用:

运行结果:

4.copyOf
5.fill


6.toString


