Java 常⽤API
1 API
概述
API(Application Programming Interface),应⽤程序编程接⼝。Java API是⼀本程序员的“字 典”,是JDK提供给我们使⽤的类的说明⽂档。这些类将底层的代码实现封装了起来,我们不需要
关⼼这些类是如何实现的,只需要学习这些类如何使⽤即可。所以我们可以通过查询API的⽅
式,来学习Java提供的类,并得知如何使⽤它们。
JDK包结构
为了便于使⽤和维护,JDK类库按照包结构划分,不同功能的类划分在不同的包中;
经常使⽤的包如下表所示:
包 | 功能 |
---|---|
java.lang | Java程序的基础类,如字符串、多线程等,该包中的类使⽤的频率⾮常⾼,不 |
需要import,可以直接使⽤ | |
java.util | 常⽤⼯具类,如集合、随机数产⽣器、⽇历、时钟等 |
java.io | ⽂件操作、输⼊/输出操作 |
java.net | ⽹络操作 |
java.math | 数学运算相关操作 |
java.sql | 数据库访问 |
java.text | 处理⽂字、⽇期、数字、信息的格式 |
2 Scanner类
2.1 什么是Scanner类
⼀个可以解析基本类型和字符串的简单⽂本扫描器。例如,以下代码使⽤户能够从System.in中
读取⼀个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
2.2 引⽤类型使⽤步骤
导包
使⽤import关键字导包,在类的所有代码之前导包,引⼊要使⽤的类型,java.lang包下的所有类
⽆需导⼊。 格式:
java.util.Scanner;
创建对象
使⽤该类的构造⽅法,创建⼀个该类的对象。格式:
数据类型 变量名 = new 数据类型(参数列表);
Scanner sc = new Scanner(System.in);
调⽤⽅法
调⽤该类的成员⽅法,完成指定功能。格式:
变量名.⽅法名();
int i = sc.nextInt(); // 接收⼀个键盘录⼊的整数
2.3Scanner 常用方法
nextInt() 接收⼀个键盘录⼊的整数
nextDouble() 接收⼀个键盘录⼊的浮点数
next() 吸取输入台输入的字符
nextLine() 吸取输入台输入的字符
2.4nextLine()与next 的区别
next() 不会吸取字符前/后 的空格/Tab键,只会吸取字符,开始吸取字符(字符前后不算)直到遇到到空格/Tab键/回车截止吸取;
nextLine() 吸取字符前后的空格/tab键 ,回车结束
public class SystemArraycopy {
public static void main(String args[]) {
Scanner reader=new Scanner(System.in);
System.out.println("nextLine()输入");
String s1=reader.nextLine();
System.out.println("next()输入");
String s2=reader.next();
System.out.println("输出nextLine():"+s1);
System.out.println("输出next():"+s2);
}
}
/*
nextLine()输入
qqq wqw wqw
next()输入
qwqw ewer ewe
输出nextLine():qqq wqw wqw
输出next():qwqw
*/
可以看到next()只吸取了qwqw字符,空格后面的都舍弃了!
3 Random类
3.1 什么是Random类
此类的实例⽤于⽣成伪随机数。
例如,以下代码使⽤户能够得到⼀个随机数:
Random r = new Random();
int i = r.nextInt();
3.2 Random使⽤步骤
查看类
java.util.Random :该类需要import导⼊使后使⽤。
查看构造⽅法
public Random() :创建⼀个新的随机数⽣成器。
查看成员⽅法
public int nextInt(int n) :返回⼀个伪随机数,范围在 0 (包括)和 指定值n (不包 括)之间的 int 值
创建⼀个 Random 对象,每次调⽤ nextInt() ⽅法,都会⽣成⼀个随机数。
3.3 练习 获取随机数
获取1-n之间的随机数,包含n,代码如下:
// 导包
import java.util.Random;
public class Test01Random {
public static void main(String[] args) {
int n = 50;
// 创建对象
Random r = new Random();
// 获取随机数
int number = r.nextInt(n) + 1;
// 输出随机数
System.out.println("number:" + number);
}
}
4 ArrayList类
4.1 什么是ArrayList类
java.util.ArrayList 是⼤⼩可变的数组的实现,存储在内的数据称为元素。此类提供⼀些⽅法
来操作内部存储的元素。 ArrayList 中可不断添加元素,其⼤⼩也⾃动增⻓。
4.2 ArrayList使⽤步骤
查看类
java.util.ArrayList :该类需要import导⼊使后使⽤。
,表示⼀种指定的数据类型,叫做泛型。 E ,取⾃Element(元素)的⾸字⺟。在出现 E 的
地⽅,我们使⽤⼀种引⽤数据类型将其替换即可,表示我们将存储哪种引⽤类型的元素。代码如
下
ArrayList,ArrayList
查看构造⽅法
public ArrayList() :构造⼀个内容为空的集合。
基本格式:
在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:
查看成员⽅法
public boolean add(E e) :将指定的元素添加到此集合的尾部。
参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) ⽅法中,只
能添加什么数据类型的对象。
使⽤ArrayList类,存储三个字符串元素,代码如下:
public class Test02StudentArrayList {
public static void main(String[] args) {
// 创建学⽣数组
ArrayList<String> list = new ArrayList<>();
// 创建学⽣对象
String s1 = "曹操";
String s2 = "刘备";
String s3 = "孙权";
// 打印学⽣ArrayList集合
System.out.println(list);
// 把学⽣对象作为元素添加到集合
list.add(s1);
list.add(s2);
list.add(s3);
// 打印学⽣ArrayList集合
System.out.println(list);
}
}
4.3常⽤⽅法和遍历
对于元素的操作,基本体现在 – 增、删、查。
常⽤的⽅法有:
public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防⽌越
界。
这些都是最基本的⽅法,操作⾮常简单,代码如下:
public class Demo01ArrayListMethod {
public static void main(String[] args) {
// 创建集合对象
ArrayList<String> list = new ArrayList<String>();
// 添加元素
list.add("hello");
list.add("world");
list.add("java");
// public E get(int index):返回指定索引处的元素
System.out.println("get:" + list.get(0));
System.out.println("get:" + list.get(1));
System.out.println("get:" + list.get(2));
// public int size():返回集合中的元素的个数
System.out.println("size:" + list.size());
// public E remove(int index):删除指定索引处的元素,返回被删除的元素
System.out.println("remove:" + list.remove(0));
// 遍历输出
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
} }
5 Arrays类
5.1概述
java.util.Arrays 此类包含⽤来操作数组的各种⽅法,⽐如排序和搜索等。其所有⽅法均为静
态⽅法,调⽤起来⾮常简单。
5.2 操作数组的⽅法
public static String toString(int[] a) :返回指定数组内容的字符串表示形式。
public static void sort(int[] a) :对指定的 int 型数组按数字升序进⾏排序。
public static void main(String[] args) {
// 定义int 数组
int[] arr = {3, 323,35, 4, 47, 8, 69, 9};
// 打印数组,输出地址值
System.out.println(arr); // [I@2ac1fdc4
//数组按数字升序进⾏排序
Arrays.sort(arr);
// 数组内容转为字符串
String s = Arrays.toString(arr);
// 打印字符串,输出内容
System.out.println(s); // [3, 4, 8, 9, 35, 47, 69, 323]
}
public static int[] copyOf(int[] original, int newLength) :复制指定的数组,未赋值的0自动填充
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
// 定义int 数组
int[] arr = {3, 323, 35, 4, 9};
数组缩容,⻓度 - 1
int[] newArr = Arrays.copyOf(arr, 4);
String s = Arrays.toString(newArr);
System.out.println(s);//[3, 323, 35, 4]
//数组扩容
int[] newArr1 = Arrays.copyOf(arr, 6);
//新数组长度=6 ,原数组的长度为5 ,则自动填充0
String s1 = Arrays.toString(newArr1);
System.out.println(s1);//[3, 323, 35, 4, 9, 0];
}
}
注意复制的效率System.arraycopy>clone>Arrays.copyOf>for循环
6 System类
java.lang.System 类中提供了⼤量的静态⽅法,可以获取与系统相关的信息或系统级操作,在
System类的API⽂档中,常⽤的⽅法有:
public static long currentTimeMillis() :返回以毫秒为单位的当前时间。
public static void arraycopy(Object src, int srcPos, Object dest, int destPos,
int length) :将数组中指定的数据拷⻉到另⼀个数组中。
6.1 currentTimeMillis⽅法
实际上,currentTimeMilils⽅法就是获取当前系统时间与1970年01⽉01⽇00:00点之间的毫秒差
值
import java.util.Date;
public class SystemDemo {
public static void main(String[] args) {
//获取当前时间毫秒值
System.out.println(System.currentTimeMillis()); // 1626531047081
}
}
6.2 arraycopy⽅法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos,
int length) :将数组中指定的数据拷⻉到另⼀个数组中
参数序号 | 参数名称 | 参数类型 | 参数含义 |
---|---|---|---|
1 | src | Object | 源数组 |
2 | srcPos | int | 源数组索引起始的位置 |
3 | dest | Object | 目标数组 |
4 | destPos | int | 目标数组索引起始位置 |
5 | length | int | 复制的元素个数 |
将src数组中前3个元素,复制到dest数组的前3个位置上复制元素前:src数组元素[1,2,3,4,5],
dest数组元素[6,7,8,9,10]复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]
public class Arraycopy {
public static void main(String[] args) {
int[] src = {1, 2, 3, 4, 5};
int[] dest = {6, 7, 8, 9, 10};
System.arraycopy(src, 0, dest, 0, 3);
System.out.print("[");
for (int arr : dest) {
System.out.print(arr+" ");
}
System.out.println("]");
}
// [1 2 3 9 10 ]
}