常用的API

概述

API(APPlication Programming Interface),应用程序编程接口,Java API 是一本程序员的字典,是JDK提供给我们使用的类的说明文档,这些类将底层的代码实现封装了其阿里,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们

使用步骤

  1. 导包 import 包路径.类名称 如果需要使用的目标类,和当前类位于同于个包下,可以省略导包语句不写,只有java.long包下的内容不需要导包,其他的包都需要import语句
  2. 创建 类名称 对象名 = new 类名称();
  3. 使用 对象名.成员方法名();

Scanner类

  1. 一个可以辨析基本类型和字符串的简单文本扫描器

  2. 可以实现键盘输入数据,到程序中

  3. System.in代表从键盘进行输入

  4. 常用方法:

    • int mun = sc.nextInt();
    • String str = sc.next();
  5. Java输入一行数据并转存到数组中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import java.io.*;
    import java.util.*;
    public class Main{
    public static void main(String[] args)throws IOException{
    Scanner cin=new Scanner(System.in);
    String str=cin.nextLine();//读入一行数据
    int []a=new int[10];
    String []str1=str.split(" ");//以空格为分割,注意用双引号
    int length=0;
    for(String s : str1){
    //使用foreach依次将字符串数组的元素转换为整型,也可以转换为其他类型
    a[length++]=Integer.parseInt(s);
    }
    for(int i=0;i<length;i++){
    System.out.println(a[i]);
    }
    }
    }

Random类

  1. Random用来生成随机数字
  2. 常用方法:
    • nextInt()返回下一个随机的int类型的数
    • nextlong()返回下一个随机的long类型的数
    • nextInt(int n)返回一个随机数范围在0-不包括n之间

Arrays类

java.util.Arrays类是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作

  1. public static String toString(数组),将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3])
  2. public static void sort(数组),按照默认升序(从下到大)对数组的元素进行排序
    1. 如果是数值,sort默认按照升序从小到大
    2. 如果是字符串,sort默认按照字母升序
    3. 如果是自定义类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持

Math类

java.util.Math类是一个与数学相关的工具类,里面提供了大量静态方法,完成与数学运算相关的操作

  1. public static double abs(double num):获取绝对值
  2. public static double ceil(double num):向上取整
  3. public static double floor(double num):向下取整
  4. public static long round(double num):四舍五入
  5. public static double pow(double a,double b): 返回第一个参数的第二个参数次幂的值。
  6. public static double sqrt(double a): 返回正确舍入的 double 值的正平方根

Math.PI:代表近似的圆周率常量(double)

Object类

java.long.Object类是类层次结构的父(根)类,每个类都使用Object类作为超类(父类),所有对象都实现这个类的方法

  1. public String toString():返回该对象的字符串表示形式,如果没有重写,那么返回的是该对象的地址值
  2. public boolean equals(object obj): 指示其他对象是否与此对象“相等”,如果没有重写,那么比较的是两个对象的地址值
  3. protected void finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
  4. public final Class<?> getClass():返回此Object的运行时类
  5. public int hashCode():返回该对象的哈希吗值
  6. public final void notify():唤醒在此对象监视器上等待的单个线程
  7. public final void notifyAll():唤醒在此对象监视器上等待的所有线程
  8. public final void wait(long timeout) :在其他线程调用此对象的notify()方法和notifyAll()方法前,导致当前线程等待
  9. protected Object clone() :创建并返回该对象那个的一个副本

Objcets类

java.util.Object类,java1,7后java加入,该类中提供了一些方法来操作对象,它由一些静态的方法组成,这些方法是空指针安全的,用于计算对象的hashcode(),返回对象的字符串表示形式toString(),比较两个对象equals()

在它的源码中,对对象为null的值进行了弹出异常操作

public static \<T> requireNonNull(T obj):查看指定引用对象不是null,源码如下:

1
2
3
4
5
public static <T> T requireNonNull(T obj){
if(obj == null)
throw new NullPointerException();
return obj;
}

Date类

java.util.Date表示日期和事件的类,类date表示特定的瞬间,精确到毫秒值,可以对日期和时间进行计算,计算完再转化为日期

把日期转化为毫秒:

当前的日期:System.currentTimeMillis();

时间原点:19701月1日00:00:00,中国为东八区所以为1970年1月1日08:00:00

1天 = 24*60*60=86400秒 = 86400*1000毫秒

Date类的空参构造方法

  1. Date()获取当前系统的日期和事件
  2. Date(long date):传递的是毫秒值,把毫秒值转化为Date日期

Date类的普通方法

  1. Long getTime():把日期转化为毫秒值

DateFormat类

java.text.DateFormat类是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们实现日期和文本之间的转化,也就是可以在Date对象和String对象之间相互转化

DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类

java.text.simpleDateFormat extends DateFormat

构造方法

SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号,构造SimpleDateFormat

参数:String pattern:传递指定的模式

模式:区分大小写的 Y:年 M:月 d:日 H:时 m:分 s:秒

写对应的模式,会将模式替换为对应的日期和时间

  1. 格式化:按照指定的格式,从Date对象转化为String对象
  2. 解析:按照指定的格式,从String对象转化为Date对象

成员方法:

  1. String fromat(Date date):按照指定的格式,把日期格式化为符合模式的字符串
  2. Date parse(String str):把符合构造方法中模式的字符串转化为Date日期,parse声明了一个解析异常,如果我们的字符串和构造方法的模式不一样,那么程序就会抛出此异常

Calendar类

java.util.Calendar类:日历类

Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR,MONTH,DAY_OF_MONTH,HOUR),无法直接创建对象使用,但是Calendar类当中有一个静态方法getInstance()使用默认时区和语言环境获取一个日历Calendar c = Calendar getInstance();

常用方法:

  1. publilc int get(int field):返回给定日历字段的值
  2. public void set(int field,int value):将给定的日历字段设置为给定值
  3. public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或者减去指定的时间量
  4. public Date getTime():返回一个表示此Calendar时间值的Date对象

int field:日历类的字段,可以使用calendar类的静态成员变量获取 calendar.YEAR,

calendar.MONTH,calendar.DATE,calendar.DAY_OF_MONTH,calendar.HOUR,calendar.MINUTE,calendar.SECOND

System类

java.lang.System类中提供了大量的静态方法,可以获取与当前系统有关的信息或系统级操作,在System类中常用的方法有:

  1. public static long currentTimeMillis():返回当前系统的时间毫秒值
  2. public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组中
    • src:源数组 secPos:源数组中的起始位置dest:目标索引destPos:目标数据中的起始位置length:要复制的数组元素的数量

StringBuilder类

String类:字符串是常量,他们的值在创建后不能改变,字符串的底层是一个被final修饰的字符数组,不能改变,是一个常量

进行字符串的相加,内存中就会有多个字符串,占用空间多,效率低下

java.lang.StringBuilder类,字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串),底层也是一个字符数组,但是没有被final修饰,可以改变长度,初始长度为16,当长度不够时,可以自动扩容

构造方法:

  1. public StringBuilder();构造一个不带任何字符的字符串缓冲区,其初始容量为16个字符
  2. public StringBuilder(String str):构造一个字符串缓冲区,它初始化为指定的字符串

普通方法:

  1. public StringBuilder append(…): 添加任意类型数据的字符串形式,并返回当前对象本身
  2. public String toString(): 将当前对象StringBuilder对象转换位String对象

包装类:

java.long.Integer,基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据,可以使用一个类,把基本类型的数据包装起来,在类中定义一些方法,这个类就称为包装类,我们可以使用这个类中的方法来操作这些基本类型的数据

int:Integer char:Character

Collections类:

java.utils.Collections是集合工具类,用来对集合进行操作,常用方法如下:

  1. public static\<T> boolean addAll(Collection\<T> c,T…elements):往集合中添加一些元素
  2. public static void shuffle(List \<?> list) : 打乱集合顺序
  3. public static void sort(List\<T> list) : 将集合中元素按照默认规则排序
  4. public static void sort(List\<T> list,Comparator\<? super T>):将集合中元素按照指定规则排序

自定义比较的规则:

升序就是我减它(前减后 ),降序就是他减我

Thanks!