【Java】07 常见 API

时间:2022-07-26
本文章向大家介绍【Java】07 常见 API,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

列举在开发中常用到的 API

一、Object 类

   Object 类是所有类的父类,若一个类没有指定继承的类则继承Object。任一类都直接或间接继承于Object。

1.1 常用方法

1.1.1 toString 方法

源码:

public String toString() {
    return getClass().getName() + '@' + Integer.toHexString(hashCode())
}

注意:   若不重写 toString 则返回 对象类型 + @ + 地址的哈希值

重写 toString 方法

@Override
public String toString() {
    return "Student{" +
            "name='" + name + ''' +
            ", age=" + age +
            '}';
}

1.1.2 equals 方法

源码:

public boolean equals(Object obj) {
    return (this == obj);
}

注意:   若不重写 equals 则比较两个对象的地址值

重写 equals 方法

@Override
  public boolean equals(Object o) {
      //判断是否为同一个对象
      if (this == o) 
          return true;
      //判断是否为空,是否为同一引用类型
      if (o == null || getClass() != o.getClass()) 
          return false;
      //向下转型
      Student_equals that = (Student_equals) o;
      //返回内容的比较结果
      return age == that.age && Objects.equals(name, that.name);
  }

1.2 Objects 工具类

1.2.1 equals 方法

源码:

public static boolean equals(Object a, Object b) {  
    return (a == b) || (a != null && a.equals(b));  
}

注意:   Objects.equals(a, b) 容忍空指针

二、Scanner 类

   一个可以解析基本类型和字符串的文本扫描器。

2.1 Scanner 对象的创建

2.2.1 导包

// import 包名.类名;
import java.util.Scanner;

2.2.2 创建对象

// 类名 对象名 = new 类名( 参数列表 );
// System.in系统输入指的是从键盘输入
Scanner sc = new Scanner(System.in);

2.2 常用方法

2.2.1 next()

   它从遇到的第一个有效字符(非空格、非换行)开始扫描,以空格或者换行符为终点,返回字符串。

2.2.2 nextLine()

   以换行符为终点,获取一整行数据。

2.2.3 nextInt()

   以空格或者换行符为终点,返回整数(实际是获取的字符串,只是将其转为了整数)。

2.2.4 hasNext()

   判断输入流中是否还有数据,有则返回 true。

2.3 示例

import java.util.Scanner;

public class Demo_Scanner {
    public static void main(String[] args) {
    	// 创建 Screen 对象
        Scanner sc = new Scanner(System.in);
        // 使用 nextInt() 方法
        int i = sc.nextInt();

        System.out.println(i);
    }
}

三、Random 类

   用于生成一个伪随机数。

3.1 Random 对象的创建

3.1.1 导包

import java.util.Random;

3.1.2 创建对象

Random r = new Random();

3.2 常用方法

nextInt()    生成一个随机数 nextInt(int b)    生成一个 [0, b) 的随机数

3.3 示例

import java.util.Random;

public class Demo_Random {
    public static void main(String[] args) {
        Random r = new Random();
		// 生成一个 [0, 10)  的随机数
        int i = r.nextInt(10);

        System.out.println(i);
    }
}

四、String 类

   String 代表字符串,java中的字符串常量都可以看为 String 的实例,例如:“abc”

4.1 String 对象的创建

4.1.1 导包

   String 类在 java.lang 包中,所以不需要导包

4.1.2 创建对象

// 形式一
String str = new String("string");
// 形式二
String str = new String(char[] chars);
// 形式三
String str = new String(byte[] bytes);
// 形式四
String str = "abc"

4.1.3 注意

   String 对象在创建后不能更改,所以可以被共享。例如:String s = “abc” 是 “abc” 不能更改,而不是变量 s 。

4.2 常用方法

4.2.1 比较( equals )

String s1 = "Hello World";
String s2 = new String("Hello World");
// 此时比较的是两个字符串的地址值是否一致,而不是内容。
System.out.print(s1 == s2);

//  equals 才是两个字符串的内容是否一致。s1 == null 会报 空指针
s1.equals(s2);

4.2.2 获取

// 获取索引值对应的字符
char charAt( index)
// 获取字符串的长度
int length()
// 获取第一次出现该字符串的索引值
int indexOf( String str )
// 截取字符串
String subString( beginIndex, endIndex)

4.2.3 转换

// 转为字符数组
char[] toCharArray()
// 转为字节数组
byte[] getBytes()

4.2.4 分割

// 按照给定规则分割字符串
String[] split(String regex)

4.2.5 替换

// 将某一字符串替换为新的,只替换第一个
String replace(String oldStr, String newStr)
// 替换所有
String replaceAll(String oldStr, String newStr)

五、Date 类

创建时间对象

5.1 时间原点

   格林威治:1970-01-01 00:00:00    北京:1970-01-01 08:00:00

5.2 构造方法

public Date()    分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 public Date(long date)    分配Date对象并初始化此对象,以表示自从原点以来经过的毫秒数。

5.3 常用方法

getTime()    把日期对象转换成对应的时间毫秒值。

5.4 示例

import java.util.Date;

public class DemoDate {
    public static void main(String[] args) {
        Date date1 = new Date(1000 * 60 * 2);       
        Date date2 = new Date();                     

        //无参构造。表示当前时间L
        Date date3 = new Date(); 

        //将日期对象转为毫秒值
        long m = date3.getTime();

        System.out.println(date1);
        System.out.println(date2);
        System.out.println(date3);
    }
}

六、DateFormat 类

   DateFormat 是一个抽象类,不能直接 new 对象,需要使用子类

6.1 语法

// 用给定的模式和默认语言环境的日期格式符号创建SimpleDateFormat对象
// y ---> 年
// M ---> 月
// d ---> 日
// H ---> 时
// m ---> 分
// s ---> 秒
SimpleDateFormat sdf = new SimpleDateFormat(pattern);

6.3 常用方法

format()    格式化,按照指定的格式,从Date对象转换为String对象。 parse()    解析,按照指定的格式,从String对象转换为Date对象。

6.4 示例

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DemoDateFormat {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入出生日期(格式:xxxx-xx-xx xx:xx:xx)");
        String s = sc.nextLine();
        //日期对象
        Date date = new Date();
        //格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //格式化当前日期
        String format = sdf.format(date);
        System.out.println(format);

        //解析传入日期
        Date parse = sdf.parse(s);
        //计算出生毫秒数
        long l = date.getTime() - parse.getTime();
        //输出毫秒
        System.out.println(l);
        //输出年龄
        System.out.println(l / 1000 / 60 / 60 / 24 / 30 / 12);
    }
}

七、StringBuilder 类

   它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。 StringBuilder 会自动维护数组的扩容。(默认16字符空间,超过自动扩充)

7.1 构造方法

public StringBuilder()    构造一个空的 StringBuilder 容器。 public StringBuilder(String str)    构造一个 StringBuilder 容器,并将字符串添加进去。

7.2 常用方法

append(String str)    添加任意类型数据的字符串形式,并返回当前对象自身。 toString()    将当前StringBuilder对象转换为String对象。

7.3 示例

public class DemoStringBuilder {
	public static void main(String[] args) {
	     //使用有参构造创建 StringBuilder 对象
	     StringBuilder sb = new StringBuilder("中国");
	     //将字符追加到sb后
	     sb.append("©");
	     sb.append(2019);
	
	     //将StringBuilder转为字符串
	     String s = sb.toString();
	
	     System.out.println(s);
	
	 }
}

八、ArrayList 集合

   ArrayList 是一个集合,数组是定长的,当我们要改变数组长度是需要创建新的数组,ArrayList不同他的长度是可以改变的。

8.1 使用方法

8.1.1 导包

// 泛型指定什么数据类型,集合中就存什么数据类型,需要使用引用类型。
// 第二个<>内可以不写,第一个是什么第二个就默认是什么。
import java.util.ArrayList<E>;

8.1.2 创建对象

// 泛型指定什么数据类型,集合中就存什么数据类型,需要使用引用类型。
// 第二个<>内可以不写,第一个是什么第二个就默认是什么。
类名<泛型> 集合名 = new 类名<> ();

8.2 常用方法

add( E e )    添加新的数据到集合中 remove( index )    删除索引为 index 的元素 get( index )    获取索引为 index 的元素 size()    获取 list 集合的长度

8.3 示例

import java.util.ArrayList;

public class Demo_ArrayList {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();

        list.add(20);
        list.add(8);
        list.add(16);
        list.add(1818);
        Integer remove = list.remove(1);
        Integer integer = list.get(1);
        int size = list.size();
    }
}

九、 工具类

9.1 Arrays 类

// 将一个字符数组升序排列
sort()

9.2 Math 类

// 生成一个[0,1)的伪随机数
random()

// 向上取整
ceil()

// 向下取整
floor()

// 四舍五入
round()

// 取绝对值
abs()

十、包装类

   基本数据类型方便、简单、高效,但泛型、集合等不支持使用基本数据类型且不符合面向对象的思想,所以在 Java 中引入了包装类

10.1 对应关系

基本数据类型

包装类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

10.2 装箱与拆箱

【装箱】基本数值 —> 包装对象

//使用构造函数函数
Integer i1 = new Integer(int i);
//使用包装类中的valueOf方法
Integer i2 = Integer.valueOf(int i);

【拆箱】包装对象 —> 基本数值

int num = i.intValue();

注意

// 从 JDK 1.5 开始,基本类型与包装类的装箱、拆箱动作可以自动完成。
Integer i = 1; 		// 自动装箱 相当于 Integer i = Integer.valueOf(1);
int a = i + 2; 		// 自动拆箱 相当于 i.intValue() + 2;

10.3 转换方法

   除了 Character 类之外,其他所有包装类都具有 parseXxx 静态方法可以将字符串参数转换为对应的基本类型

// 将字符串参数转换为对应的 byte 基本类型。
Byte parseByte(String s)

// 将字符串参数转换为对应的 short 基本类型。
Short parseShort(String s)

// 将字符串参数转换为对应的 int 基本类型。
Integer parseInt(String s)

// 将字符串参数转换为对应的 long 基本类型。
Long parseLong(String s)

// 将字符串参数转换为对应的 float 基本类型。
Float parseFloat(String s)

// 将字符串参数转换为对应的 double 基本类型。
Double parseDouble(String s)

// 将字符串参数转换为对应的 boolean 基本类型。
Boolean parseBoolean(String s)