API
API
API:application programming interface。应用程序接口。我们这里通常把api简称为帮助文档。
概述
在java设计时,已经提供了很多解决问题的封装类。这些解决问题的封装类,我们统称为:API,在开发中,只要去相应的包(文件夹)中去找对应的封装类就可以解决问题。
Object
O别处他是所有类型的父类,共有11个方法,子类继承了Object都可以使用这些方法。
Object中的toString
打印对象时,默认调用的方法就是toString方法,在Object中,默认打印的就是类型+@ +地址。
默认打印的内容是无法满足日常使用中的需求的,所以需要对toString进行重写。
如果一个对象打印不是地址内容,100%是重写了toString方法。
重写toString的意义就是让打印的对象直接把属性值显示值
Object中的equalse
在Object中equals默认比较的是两个对象的地址是否相同。而当父类的equals方法无法满足自雷的需要时【如果两个相同类型的对象,如果属性值相同,内容就相同】,就需要子类重写方法。
equals方法的作用,比较两个对象是否相等。Object中默认的逻辑是比较地址是否相同,我们希望相同类型的对象,如果属性值相同,我们认为相等,此时就需要重写equals方法
Scanner
Scanner类可以获取用户键盘录入的数据,提高程序的灵活性。
使用步骤
导包
使用import关键字导包,在类的所有代码之前导包,位置放到class定义的上面和package的下面。引入要使用的类型,java.lang包下的所有类无需导入。
import.包名.类名;
import.util.Scanner;
创建对象
使用该类的构造方法,创建一个该类的对象。
数据类型 变量名 = new 数据类型(参数列表);
Scanner sc = new Scanner(System.in);
调用方法
调用该类的成员方法,完成指定功能
变量名.方法名();
int i = sc.nextInt();//接受录入的整数
例:
import java.util.Scanner;
public class Demo_Scanner{
public static void main(String [] args)
{
//创建对象
Scanner sc = new Scanner(System.in);
//控制台输出
System.out.printn("录入一个整数");
//调用方法
int i = sc.nextInt();
输出数据
System.out.println("i:"+i);
}
}
Random类
此类的实例用于生成随机数。
使用步骤
导包
使用import关键字导包,在类的所有代码之前导包,位置放到class定义的上面和package的下面。引入要使用的类型,java.lang包下的所有类无需导入。
import.包名.类名;
import.util.Random;
创建对象
使用该类的构造方法,创建一个该类的对象。
数据类型 变量名 = new 数据类型(参数列表);
Scanner rand = new Random();
调用方法
调用该类的成员方法,完成指定功能
变量名.方法名();
int i = rand.nextInt();//接受录入的整数
例:
import java.util.Random;
public class Demo_Random{
public static void main(String [] args)
{
//创建对象
Random rand = new Random();
//控制台输出
System.out.printn("随机生成三个10以内随机数");
//循环三次
for(int i = 0; i < 3;i++){
//调用方法
//循环每次调用nextInt(n),都会生成一个随机数
int i = rand.nextInt(10);
//输出数据
System.out.println("i:"+i);
}
}
}
案例
产生一个1-100之间的随机数,请猜出这个数据是多少。
//生成Random和Scanner对象
Random rand = new Random();
Scanner sc = new Scanner(System.in);
//生成随机数,nextInt(100)生成0-99,所以需要+1
int n = rand.nextInt(100)+1;
//循环判断
while(true){
//键盘录入需要猜的数据
int s = sc.nextInt();
//比较数据
if(s > n) {
System.out.println("猜大了");
}else if (s < n) {
System.out.println("猜小了");
}else {
System.out.println("猜对了");
//正确则退出循环
break;
}
}
String类
代表字符串。Java程序中所有的字符串文字(例如”abc” )都可以被看作是实现此类的实例。
String描述的字符串,所有在Java程序中使用双引号引用起来的数据都是一个对象。
特点
- 字符串常量属于对象,但不存储在堆空间,存储于方法区中的字符串常量池 (保存的就是所有的字符串数据。只要我们书写了双引号,不管双引号中间是什么数据,这些数据都会立刻在字符串常量池中保存。并且一直存在,不会被改变。)
- 字符串不变,字符串的值在创建之后就不能被更改。
- 可共享:因为对象不可变,所以可以被共享
Spring常用方法
方法 | 作用 |
---|---|
public boolean equals (Object anObject) | 将此字符串与指定对象进行比较 |
public boolean equalsIgnoreCase (String anotherString) | 将此字符串与指定对象进行比较,忽略大小写 |
public int length () | 返回此字符串的长度 |
public String concat (String str) | 将指定的字符串连接到该字符串的末尾 |
public char charAt (int index) | 返回指定索引处的 char值 |
public int indexOf (String str) | 返回指定子字符串第一次出现在该字符串内的索引 |
public String substring (int beginIndex) | 返回一个子字符串,从beginIndex开始截取字符串到字符串结尾 |
public String substring (int beginIndex, int endIndex) | 返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex |
public char[] toCharArray () | 将此字符串转换为新的字符数组 |
public byte[] getBytes () | 使用平台的默认字符集将该 String编码转换为新的字节数组 |
public String replace (CharSequence target, CharSequence replacement) | 将与target匹配的字符串使用replacement字符串替换 |
public String[] split(String regex) | 将此字符串按照给定的regex(规则)拆分为字符串数组 |
StringBuider
可变字符序列,通常用来解决String字符串拼接时,重复创建对象的浪费情况,它是一个类似于String的字符串缓冲区。
与String的区别在于StringBuilder的内容是可变的。
StringBuilder的构造方法于常用方法
查看StringBuilder的API文档,可以发现,有两个常用的构造方法:
方法 | 作用 |
---|---|
public StringBuilder() | 构造一个空的StringBuilder容器 |
public StringBuilder(String str) | 构造一个StringBuilder容器,并将字符串添加进去 |
三个常用的方法:
方法 | 作用 |
---|---|
public StringBuilder append(…) | 添加任意类型数据的字符串形式,并返回当前对象自身 |
public StringBuilder reverse() | 返回反转的字符序列 |
public String toString() | 将当前StringBuilder对象转换为String对象 |
StringBuilder已经覆盖重写了Object当中的toString方法。
StringBuilder与String的相互转换
-
StringBuilder转换为String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String -
String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
Arraylist类
包含用来操作数组的各种方法,比如排序和搜索等,其所有方法均为静态方法。
操作数组常用方法
方法 | 作用 |
---|---|
public static String toString(int[] a) | 返回指定数组内容的字符串表示形式 |
public static void sort(int[] a) | 对指定的 int 型数组按数字升序进行排序 |
Math类
包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象。
基本方法
方法 | 作用 |
---|---|
public static double abs(double a) | 返回 double 值的绝对值 |
public static double ceil(double a) | 返回大于等于参数的最小的整数 |
public static double floor(double a) | 返回小于等于参数最大的整数 |
public static long round(double a) | 返回最接近参数的 long(相当于四舍五入方法) |
public static int max(int a,int b) | 返回两个int值中的较大值 |
public static int min(int a,int b) | 返回两个int值中的较小值 |
public static int pow(double a,double b) | 返回a的b次幂值 |
public static double random() | 返回值为double的正值,【0.0,1.0】 |
Date
表示日期的瞬间,可以精确到毫秒
构造方法 | 作用 |
---|---|
Date() | 无参构造方法创建对象,表示当前时间的精确毫秒 |
Date(long date) | 有参构造方法创建对象,可以指定毫秒值进行创建 |
日期格式化类DateForamt【SimpleDateFormat】
DateFormat是抽象类,里面定义了方法能够将日期对象和字符串之间进行转换:
- 格式化:Date对象转换为字符串
String format(Date date) 将一个 Date 格式化为日期/时间字符串。
- 解析:字符串的日期转换为Date对象
Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。
日期格式化类DateFormat是抽象类,要借助其子类 SimpleDateFormat类进行使用
日期格式化或者解析,需要借助SimpleDateFormat。构建对象时需要制定日期模板。
Calender
日历类,封装所有时间日期信息,是Date类的替代品。
Calendar本身是一个抽象类,如果要使用,需要使用其子类
方法调用
public int get(int field)
:返回给定日历字段的值
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
System.out.println("year = " + year);
public void set(int field, int value)
:将给定的日历字段设置为给定值
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2020);
public abstract void add(int field, int amount)
:根据日历的规则,为给定的日历字段添加或减去指定的时间量
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 30000);
public Date getTime()
:返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
Date d = cal.getTime();//日历类方法获取
long time = d.getTime();//日期类方法获取
System
系统类
public static long currentTimeMillis() :获取系统时间的毫秒值