API概述
API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典 ,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
API使用步骤:
①打开帮助文档
②点击显示,找到索引,看到输入框
③你要找谁?在输入框里输入,然后回车
④看包。java.lang下的类不需要导包
⑤看类的解释和说明
⑥学习构造方法
⑦使用成员方法
Scanner类
一个可以解析基本类型和字符串的简单文本扫描器。
例如,以下代码使用户能够从System.in中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
Scanner类使用步骤
第一步:查看类
java.util.Scanner:该类需要import导入后使用
第二步:查看构造方法
public Scanner(InputStream source):构造一个新的Scanner,它生成的值是从指定的输入流扫描的
第三步:查看成员方法
public int nextInt():将输入信息的下一个标记扫描为一个int值
使用Scanner类,完成接收键盘录入数据的操作,代码如下:
import java.util.Scanner; //1.导包
public class ScannerDemo {
public static void main(String[] args) {
//2.创建键盘录入数据的对象
Scanner sc = new Scanner(System.in);
//3.接收数据
System.out.println("请输入一个整数:");
int i = sc.nextInt();
//4.输出数据
System.out.println("i:"+i);
}
}
Random类
此类的实例用于生成伪随机数。例如,以下代码使用户能够得到一个随机数:
Random r = new Random();
int i = r.nextInt();
Random类使用步骤
第一步:查看类
java.util.Random:该类需要import导入使后使用
第二步:查看构造方法
public Random():创建一个新的随机数生成器
第三步:查看成员方法
public int nextInt(int n):返回一个伪随机数,范围在(0,n]之间的int值
创建一个Random对象,每次调用nextInt()方法,都会生成一个随机数。例如:
import java.util.Random; //导包
public class RandomDemo {
public static void main(String[] args){
for(int x = 0; x < 10; x++) {
int d = new Random().nextInt(10)+1; //产生1到10的随机数
System.out.println(d);
}
}
}
String类
java.lang.String类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例。String类中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及转换大小写的方法。
特点:
①字符串不变:字符串的值在创建后不能被更改
②因为String对象是不可变的,所以它们可以被共享
String类的使用步骤
第一步:查看类
java.lang.String:此类不需要导入
第二步:查看构造方法
public String():初始化新创建的String对象,以使其表示空字符串
public String(char[] value):通过当前参数中的字符数组来构造新的String
public String(byte[] bytes):通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String
//无参构造
String str1 = new String();
String str = "abc";
//通过字符数组构造
char chars[] = {'a', 'b', 'c'};
String str2 = new String(chars);
//通过字节数组构造
byte bytes[] = {97, 98, 99};
String str3 = new String(bytes);
String类的常用方法
①具有判断功能的方法:
boolean equals(Object obj):判断两个字符串的内容是否相同,重写了Object的方法
boolean contains(String str):判断一个字符串中是否包含另一个字符串。底层调用了equals方法
boolean isEmpty():判断字符串是否为空
boolean endsWith(String str):判断此字符串是否以指定的后缀结束
boolean startsWith(String str):判断此字符串是否以指定的前缀开始
boolean matches(String regex):用规则匹配整个字符串,只要有一处不符合规则,就结束匹配返回false
②具有获取功能的方法:
int length():返回此字符串的长度
char charAt(int index):返回指定索引处的字符。
int indexOf(char ch):返回指定字符在此字符串中第一次出现处的索引。
int lastIndexOf(char ch):返回指定字符在此字符串中最后一次出现处的索引。
String substring(int begin, int end):返回一个新字符串,它是此字符串的一个子串,包含头不包含尾。
③具有转换的方法:
byte[] getBytes():从字符串到字节数组的方法
char[] toCharArray():从字符串转成字符数组的方法
④具有替换的方法:
String replace(char old, char new):用新字符替换旧字符(替换所有)
String replace(String oldstr, String newstr):用新的子串换旧串
⑤具有切割功能的方法:
String[] split(String regex):按照一定规则将字符串切割成一个字符串数组
String trim():去除字符串的前后空格
⑥具有比较功能的方法:
int compareTo(String anotherString):按字典顺序比较两个字符串。
int compareToIgnoreCase(String str):按字典顺序比较两个字符串,不考虑大小写。
StringBuffer类
它是字符串的缓冲区,是一个容器。
特点:
①长度是可变化的
②可以直接操作多个数据类型
③最终可以通过toString()方法变成字符串
构造方法:
StringBuffer():构造一个其中不带字符的字符串缓冲区,初始容量为16个字符。
StringBuffer(int num):构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
常用方法
StringBuffer append():添加各种类型的数据
StringBuffer insert(int index):在容器位置插入各种类型的数据
StringBuffer deleteCharAt(int index):删除指定位置的字符
int length():获取长度
char charAt(int index):根据索引获取字符
int indexOf(String str):根据字符串获取位置
String substring(int start):截取字符串
String substring(int start,int end):截取字符串(包含头不包含尾)
StringBuffer reverse():将一个字符串进行反转
String字符串转成StringBuffer
StringBuffer sb = new StringBuffer(String str);
StringBuffer转成String字符串
String str = new StringBuffer("abc").toString();
StringBuilder类
JDK1.5版本后出现的,和StringBuffer的功能是一样的,但是有区别:
①StringBuffer(JDK1.0)保证线程安全
②StringBuilder(JDK1.5)不保证线程安全
Math类
java.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。
常用方法:
static int max(int a,int b):返回a和b之间的最大值
static int min(int a,int b):返回a和b之间的最小值
static int abs(int a):返回a的绝对值
static double sqrt(int a):返回a的开方
static double pow(double a,double b):返回a的b次方
static double sin(double a):返回角的正弦值
static double cos(double a):返回角的余弦值
static double tan(double a):返回角的正切值
代码演示
public static void main(String[] args) {
System.out.println("2和3的最大值:"+Math.max(3,2));
System.out.println("2和3的最小值:"+Math.min(3,2));
System.out.println("-2的绝对值:"+Math.abs(-2));
System.out.println("2的平方根:"+Math.sqrt(2));
System.out.println("2的三次方:"+Math.pow(2,3));
System.out.println("90度的正弦值:"+Math.sin(90));
System.out.println("0度的余弦值:"+Math.cos(0));
System.out.println("60度的正切值:"+Math.tan(60));
}
其他方法可查阅Java的API文档
总结:产生随机数的两种方法
①通过Math类的random()静态方法
int num = (int)(Math.random()*100+1); //产生1-100之间的随机数
②通过Random类的nextInt()方法
int num = new Random().nextInt(100)+1; //产生1-100之前的随机数
Date类
创建一个当前时间的Date对象
Date d = new Date();
由于Date类中的绝大部分方法都已经过时,所以被java.text包中的DateFormat类的方法所替代。但是DateFormat类是一个抽象类,不能被实例化,所以要用其子类SimpleDateFormat创建对象并使用方法。
DateFormat类(日期格式化)
它是日期或时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期和时间。
常用方法:
String foramt(Date d):将一个Date格式化日期或时间字符串
SimpleDateFormat类
它是DateFormat类的子类,是非抽象的,可以创建实例对象。
常用构造方法:
SimpleDateFormat(String pattern):用指定模式的日期格式符号进行构造
代码演示
import java.util.*;
import java.text.*;
public class SimpleDateFormatDemo {
public static void main(String[] args) {
//创建当前时间的Date对象
Date d = new Date();
System.out.println(d); // Tue Feb 13 17:01:37 CST 2020
//将模式封装到SimpleDateFormat对象中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
//调用fromat方法让模式格式化指定的Date对象
String time = sdf.format(d); //2020年2月13日 05:01:37
System.out.println(time);
}
}
Calendar类
Calendar类(日历类)的功能要比Date类强大很多,可以方便的进行日期的计算,获取日期中的信息时考虑了时区等问题。而且在实现方式上也比Date类要复杂一些。使用Calendar类更容易单独获取日期中的年份,月份,日期,星期,小时,分钟,秒等等
由于Calendar类是抽象类,并且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance()静态方法用来创建对象。常用方法以及用法详见API文档。
基本数据类型包装类
为了更方便的操作每个基本数据类型,java对其提供了很多的属性和方法供我们使用。
8中基本数据类型的包装类对应如下:
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
包装类提供了很多操作数据类型的方法,并且这些方法都是静态的,更方便于开发。
static int MAX_VALUE():获取int类型的最大值
static int MIN_VALUE():获取int类型的最小值
static int parseInt(String str):将字符串变成int类型
static int intValue():将字符串变成int类型
static String toBinaryString(int x):将十进制转化为二进制
static String toHexString(int x):将十进制转化为十六进制
static String toOctalString(int x):将十进制转化为八进制
static String toUnsignedString(int value,int x):将十进制转化为x进制
基本数据类型与字符串类型之间的转换
public class IntegerDemo2 {
public static void main(String[] args) {
//将字符串变成基本数据类型
int num = Integer.parseInt("123");
System.out.println(num);
//将基本数据类型变成字符串
String str = Integer.toString(num);
System.out.println(str);
}
}
注意:在将字符串转换成int类型时,如果字符串不是数字型的字符串,那么会发生数字格式化异常。
自动装箱和拆箱
自动装箱和自动拆箱是JDK1.5出现的新特性,它的出现简化了基本数据类型和相对应对象的转化步骤。
自动装箱:自动将一个基本数据类型的数据装箱成一个该类型数据的包装类对象的引用。
Integer i = 100; //不需要通过new来实现,java自动完成
自动拆箱:自动将一个基本数据类型包装类的对象引用拆箱成该基本数据类型的数据。
int i = 10;
Integer j = i; //自动装箱
int k = j; //自动拆箱