概述
API(APPlication Programming Interface),应用程序编程接口,Java API 是一本程序员的字典,是JDK提供给我们使用的类的说明文档,这些类将底层的代码实现封装了其阿里,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们
使用步骤
- 导包 import 包路径.类名称 如果需要使用的目标类,和当前类位于同于个包下,可以省略导包语句不写,只有java.long包下的内容不需要导包,其他的包都需要import语句
- 创建 类名称 对象名 = new 类名称();
- 使用 对象名.成员方法名();
Scanner类
一个可以辨析基本类型和字符串的简单文本扫描器
可以实现键盘输入数据,到程序中
System.in代表从键盘进行输入
常用方法:
- int mun = sc.nextInt();
- String str = sc.next();
Java输入一行数据并转存到数组中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import 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类
- Random用来生成随机数字
- 常用方法:
- nextInt()返回下一个随机的int类型的数
- nextlong()返回下一个随机的long类型的数
- nextInt(int n)返回一个随机数范围在0-不包括n之间
Arrays类
java.util.Arrays类是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作
- public static String toString(数组),将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3])
- public static void sort(数组),按照默认升序(从下到大)对数组的元素进行排序
- 如果是数值,sort默认按照升序从小到大
- 如果是字符串,sort默认按照字母升序
- 如果是自定义类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持
Math类
java.util.Math类是一个与数学相关的工具类,里面提供了大量静态方法,完成与数学运算相关的操作
- public static double abs(double num):获取绝对值
- public static double ceil(double num):向上取整
- public static double floor(double num):向下取整
- public static long round(double num):四舍五入
- public static double pow(double a,double b): 返回第一个参数的第二个参数次幂的值。
- public static double sqrt(double a): 返回正确舍入的 double 值的正平方根
Math.PI:代表近似的圆周率常量(double)
Object类
java.long.Object类是类层次结构的父(根)类,每个类都使用Object类作为超类(父类),所有对象都实现这个类的方法
- public String toString():返回该对象的字符串表示形式,如果没有重写,那么返回的是该对象的地址值
- public boolean equals(object obj): 指示其他对象是否与此对象“相等”,如果没有重写,那么比较的是两个对象的地址值
- protected void finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
- public final Class<?> getClass():返回此Object的运行时类
- public int hashCode():返回该对象的哈希吗值
- public final void notify():唤醒在此对象监视器上等待的单个线程
- public final void notifyAll():唤醒在此对象监视器上等待的所有线程
- public final void wait(long timeout) :在其他线程调用此对象的notify()方法和notifyAll()方法前,导致当前线程等待
- protected Object clone() :创建并返回该对象那个的一个副本
Objcets类
java.util.Object类,java1,7后java加入,该类中提供了一些方法来操作对象,它由一些静态的方法组成,这些方法是空指针安全的,用于计算对象的hashcode(),返回对象的字符串表示形式toString(),比较两个对象equals()
在它的源码中,对对象为null的值进行了弹出异常操作
public static \<T> requireNonNull(T obj):查看指定引用对象不是null,源码如下:
1 | public static <T> T requireNonNull(T 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类的空参构造方法
- Date()获取当前系统的日期和事件
- Date(long date):传递的是毫秒值,把毫秒值转化为Date日期
Date类的普通方法
- 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:秒
写对应的模式,会将模式替换为对应的日期和时间
- 格式化:按照指定的格式,从Date对象转化为String对象
- 解析:按照指定的格式,从String对象转化为Date对象
成员方法:
- String fromat(Date date):按照指定的格式,把日期格式化为符合模式的字符串
- Date parse(String str):把符合构造方法中模式的字符串转化为Date日期,parse声明了一个解析异常,如果我们的字符串和构造方法的模式不一样,那么程序就会抛出此异常
Calendar类
java.util.Calendar类:日历类
Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR,MONTH,DAY_OF_MONTH,HOUR),无法直接创建对象使用,但是Calendar类当中有一个静态方法getInstance()使用默认时区和语言环境获取一个日历Calendar c = Calendar getInstance();
常用方法:
- publilc int get(int field):返回给定日历字段的值
- public void set(int field,int value):将给定的日历字段设置为给定值
- public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或者减去指定的时间量
- 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类中常用的方法有:
- public static long currentTimeMillis():返回当前系统的时间毫秒值
- 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,当长度不够时,可以自动扩容
构造方法:
- public StringBuilder();构造一个不带任何字符的字符串缓冲区,其初始容量为16个字符
- public StringBuilder(String str):构造一个字符串缓冲区,它初始化为指定的字符串
普通方法:
- public StringBuilder append(…): 添加任意类型数据的字符串形式,并返回当前对象本身
- public String toString(): 将当前对象StringBuilder对象转换位String对象
包装类:
java.long.Integer,基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据,可以使用一个类,把基本类型的数据包装起来,在类中定义一些方法,这个类就称为包装类,我们可以使用这个类中的方法来操作这些基本类型的数据
int:Integer char:Character
Collections类:
java.utils.Collections是集合工具类,用来对集合进行操作,常用方法如下:
- public static\<T> boolean addAll(Collection\<T> c,T…elements):往集合中添加一些元素
- public static void shuffle(List \<?> list) : 打乱集合顺序
- public static void sort(List\<T> list) : 将集合中元素按照默认规则排序
- public static void sort(List\<T> list,Comparator\<? super T>):将集合中元素按照指定规则排序
自定义比较的规则:
升序就是我减它(前减后 ),降序就是他减我