常用API

1.什么是API

API(Application Programming Interface): 应用程序编程接口

2.Java中的API

指的是JDK中提供的各种功能Java类,这些类将底层的实现封装了起来,我们不用管内部实现,只需要掌握如何使用.

3.常见的常用类

Object

String

StringBuffer

StringBuilder

System Date日期类

DateFormat日期格式化类

Calendar日历类 Math类

Random随机类

Object类

Object类 是所有类的父类,所有类都直接或间接的继承了该类

常被重写方法: equals() 用于比较对象 toString() 用于输出对象

常用方法: 线程常用方法 wait() 线程沉睡 notify和notifyAll() 唤醒沉睡的线程

String类

String类代表一个字符串,Java中所有的字符串都被时限为此类的对象,String类在lang包下,lang包属于默认包不需要导入

String字符串是固定长度的字符串,本身是一个字符串对象空间,但在创建后不能被更改,但可以被共享

java 最常用的api 类 java常用api汇总_jvm

public class Demo {     

	public static void main(String[] args) {
		//字符串比较相等,使用的equals来自于Object类	
		String str = "张三";
		String str1 = new String("张三");
		String s1 = "张";
		String s2 = "三";
		String str2 = s1+s2;
		String str3 = "张"+"三";  //在放入内存之前已经组合:张三
		System.out.println("str与str1的地址是否相等:"+(str==str1));
		System.out.println("str的地址是否与str2相等:"+(str==str2));
		System.out.println("str与str2的值是否相等:"+str.equals(str2));
		System.out.println("str与str3的地址是否相能:"+(str==str3));
	}
}

java 最常用的api 类 java常用api汇总_java 最常用的api 类_02

String常用方法

常用方法

描述

charAt(index)

返回指定下标的字符

indexOf(char|str)

返回指定字符或字符串的所在下标位置

indexOf(start,str)

从指定位置开始查找,并返回所在下标

lastIndexOf(str)

从末尾开始查找,返回第一个字符下标位置

subString(start)

从开始位置截取字符串

subString(start,end)

从开始位置截取到指定位置结束,不包含结束下标

toUppercase()

转换大写

toLowercase

转换小写

getBytes

转换为字节数组

toCharArry

转换为字符数组

replace

替换字符

split

通过指定字符,将字符串拆分字符为字符串数组

join

将字符数组元素通过指定字符拼接为字符串

public class StringMethod {

	public static void main(String[] args) {
		String str = "saldjfhkjasdhfkjaASKHdflhasJDfdsa";
		System.out.println("字符串的长度为:"+str.length());
		System.out.println("下标为6的字符为:"+str.charAt(6));
		System.out.println("查询h出现的第一个位置为:"+str.indexOf("h"));
		System.out.println("查询h出现的第二个位置为:"+str.indexOf("h",6+1));
		System.out.println("查询h出现在最后一个位置:"+str.lastIndexOf("h"));
		String str1 = str.substring(6);
		System.out.println("从下标6截取到末尾的字符串为:"+str1);
		String str2 = str.substring(6, 10);
		System.out.println("截取下标6到9的字符:"+str2);
		System.out.println("转换为大写字母为:"+str.toUpperCase());
		System.out.println("转换为小写字母为:"+str.toLowerCase());
		byte[] bs = str.getBytes();
		System.out.println("转换为字节数组:"+Arrays.toString(bs));
		char[] cs = str.toCharArray();
		System.out.println("转换为字符数组为:"+Arrays.toString(cs));
		//通过字符拆分为字符串数据,但元素中不包含h
		String[] strs = str.split("h");
		System.out.println("通过h拆分的字符串数组为:"+Arrays.toString(strs));
		System.out.println("通过逗号拼接数组中的字符串:"+String.join("h", strs));
		String num = 5+"";   //简单的将数字转换为字符串
		//查询出所有的h所在下标
		String lower = str.toLowerCase();
		int index = lower.indexOf("h"); //找到第一个h所在下标
		System.out.print("h出现的下标为值为:");
		while(index!=-1) {
			System.out.print("  "+index);
			index = lower.indexOf("h", index+1);
		}
	}
}

运行结果:

java 最常用的api 类 java常用api汇总_算法_03

StringBuffer,StringBuilder类

StringBuffer是一个可变长度字符串类,我们可以把它看做是一个容器,这里的可变指的是StringBuffer中的内容可变,且线程安全

构造方法: StringBuffer() 默认初始容器 大小为16个字符

StringBUffer(长度) 初始是设定空间大小

StringBuffer(内容) 初始化字符串,内容个数就是长度

方法: append(内容) 追加内容到末尾

insert(index,内容) 在指定位置插入内容

delete(start[,end]) 一个参数为删除指定位置字符,两参数表示开始到结束

reverse() 反转字符

toString() 将字符串缓存空间变为固定字符串

public class StringBufferDemo {

	public static void main(String[] args) {
		//可变长度字符串
//		StringBuffer sb = new StringBuffer("flasdjf");
		StringBuffer sb = new StringBuffer();
		//向缓冲区添加内容
		sb.append("惊天大消息,包了一个饺子");
		sb.append("这个饺子有点大,一锅炖不下");
		System.out.println(sb.toString());
		sb.insert(6, "今天正在传输,");
		System.out.println(sb.toString());
		sb.reverse();
		System.out.println(sb.toString());
		sb.delete(0, 5);
		System.out.println(sb.toString());
	}
}

java 最常用的api 类 java常用api汇总_java 最常用的api 类_04

String,StringBuffer,StringBuilder异同

相同:三者都是用于字符串的操作

不同: String是固定长度字符串,每次操作字符串都会舍去原来的空间,新建一个空间,在赋值取值较快,但操作效率较低

StringBuffer是一个字符串缓冲区,所有的字符串操作都在同一个空间中,所以效率略高,且线程安全

StringBuilder与StringBuffer相同,线程不安全; 单线程代码中使用更优

效率: String < StringBuffer < StringBuilder

System系统类

系统类中用于控制系统信息的读取,输出,获取

静态属性: err错误打印流 out普通输出流 in标准输入流

方法: exit(0) 结束系统 currentTimeMillis获取时间毫秒数(long)

public class SystemDemo {

	public static void main(String[] args) {
		//使用系统标准输入流,读取控制台数据
		Scanner in = new Scanner(System.in);
		//获取时间毫秒数
		long start = System.currentTimeMillis();
		System.out.println("请输入学生名称:");
		String name = in.next();
		//使用错误输出流输出红色内容
		System.err.println("输入的学生名称为:"+name);
		long end = System.currentTimeMillis();
		System.out.println("系统共消耗时间为:"+(end-start));
		in.close();
	}
}

java 最常用的api 类 java常用api汇总_java 最常用的api 类_05

Math数学类与Random伪随机数类

math中设计了大量操作数学的静态方法,常用四舍五入 向上取整 向下取整 随机数

public class MathDemo {

	public static void main(String[] args) {
		// 四舍五入   向上取整   向下取整   
		System.out.println("3.14四舍五入:"+Math.round(3.14));
		System.out.println("向上取整:"+Math.ceil(3.14));
		System.out.println("向下取整:"+Math.floor(3.14));
		System.out.println(Math.PI);
		System.out.println("随机数:"+Math.random());
		
		//相对应的有一个随机数类
		//nextInt()  获取到整数
		//nextInt(int bound)  获取到0到上边界的整数,不包含上边界
		//如果获取小数,更多使用Math.random()
		Random rand = new Random();
		System.out.println("获取随机值:"+rand.nextInt());
	}
}

java 最常用的api 类 java常用api汇总_jvm_06

Date日期类

日期类,用于获取和设置日期,Java常用于存储日期类型

构造方法: Date() 创建对象,获取到当前系统时间

Date(long) 通过毫秒数创建指定日期

方法: getTime() 获取到日期转换的

69毫秒数,从1970.1.1算

public class DeteDemo {

	public static void main(String[] args) {
		Date date = new Date();
		System.out.println("当前日期为:"+date);
		System.out.println("当前日期转换的毫秒数为:"+date.getTime());
		date = new Date(1548961565631L);
		System.out.println("设定的日期为:"+date);
	}
}

java 最常用的api 类 java常用api汇总_java 最常用的api 类_07

DateFormat日期格式化类

1.控制台和将来的前端页面,所提交的数据日期都是以字符串的形式体现,如何将字符串存入日期

2.日期又如何以我们需要的格式展示

这以上情况需要使用我们的日期格式化类进行互转

DateFormat是日期格式化子类抽象类,必须通过SimpleDateFormat子类实现类去进行实例化

配置格式化对照图

java 最常用的api 类 java常用api汇总_java_08

构造方法: SimpleDateFormat(格式) 创建格式化对象,并初始化对照格式

常用方法: format(日期[,格式]) 将日期转换为指定格式显示

parse(字符串[,格式]) 将指定格式的字符串转换为日期

public class DeteFormatDemo {

	public static void main(String[] args) {
		Date date = new Date();
		System.out.println("当前日期为:"+date);
		//需要格式化对象,对日期进行格式化展示
		DateFormat df = new SimpleDateFormat();
		String date1 = df.format(date);
		System.out.println("转换为默认格式字符串:"+date1);
		//初始化日期格式对象
		df = new SimpleDateFormat("yyy-MM-dd E HH:mm:ss SSS");
		String date2 = df.format(date);
		System.out.println("指定格式日期:"+date2);
		//字符串可以转换为日期
		df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = "1999-10-01 10:10:10";
		//使用parse方法,将字符串转换为日期
		try {
			Date date3 = df.parse(str);
			System.out.println("日期为:"+date3);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

java 最常用的api 类 java常用api汇总_jvm_09

日期多格式转换

public class DateFormatDemo1 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入日期:");
		String da = in.next();
		//创建格式化对象,用于适应各种类型的转换,需要使用格式化数组存储多个格式
		DateFormat[] dfs = {new SimpleDateFormat("yyyy-MM-dd"),new SimpleDateFormat("yyyy/MM/dd"),new SimpleDateFormat("yyyy年MM月dd日")};
		int i=0;
		//通过循环的方式去识别每一个格式,如果识别到了就转换,没有识别到异常处理,程序继续运行
		for (DateFormat df : dfs) {
			try {
				Date date = df.parse(da);
				//没有问题就会执行输出
				System.out.println("日期为:"+date);
			} catch (ParseException e) {
				i++;
			}
		}
		if(i==dfs.length) {
			System.out.println("对不起,您输入的日期格式不正确!");
		}
	}
}

java 最常用的api 类 java常用api汇总_算法_10

Calendar日历类

Calendar类是为特定瞬间与一组日历字段之间的转换提供一些方法,并提供操作日历字段的方法

Calendar日历类是一个抽象类,但其提供了一个可以获取对象的getInstance(),用于获取日历对象

常用方法:

get(属性) 返回指定的日历字段

add(属性,int val)  给对应属性,添加或减少日期

set(属性,int val) 设定某个属性的字段值

set(int yeart, int month,int day) 直接设置年月日

set(int year,int month,int day ,int hour, int minute) 直接设置年月日时分

set(int year,int month,int day ,int hour, int minute,int second) 直接设置年月日时分秒

public class CalendarDemo {

	public static void main(String[] args) {
		// 获取当前日期日历对象
		Calendar c = Calendar.getInstance();
		//获取年月日
		int year = c.get(Calendar.YEAR);
		//国际日历,月份是从0开始11结束
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DATE);
		//day = c.get(Calendar.DAY_OF_MONTH);
		System.out.println("今天的日期是:"+year+"-"+month+"-"+day);
		int week = c.get(Calendar.DAY_OF_WEEK)-1;
		System.out.println("今天星期"+week);
		//获取时分秒
		int hour = c.get(Calendar.HOUR_OF_DAY);
//		hour = c.get(Calendar.HOUR);  //12小时制
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		int ms = c.get(Calendar.MILLISECOND);
		System.out.println(hour+":"+minute+":"+second+"  "+ms);
	}
}

java 最常用的api 类 java常用api汇总_java_11

使用日历类输出日期

public class CalendarDemo1 {

	public static void main(String[] args) {
		// 获取当前日期日历对象
		Calendar c = Calendar.getInstance();
		//获取年月日
		int year = c.get(Calendar.YEAR);
		//国际日历,月份是从0开始11结束
		int month = c.get(Calendar.MONTH)+1;
		String m = "",d="";
		//小于10的前面补0
		if(month<10) {
			m = "0"+month;
		}else
			m = month+"";
		int day = c.get(Calendar.DATE);
		if(day<10) 
			d = "0"+day;
		else 
			d = day+"";
		int week = c.get(Calendar.DAY_OF_WEEK)-1;
		String[] w = {"日","一","二","三","四","五","六"};
		//获取时分秒
		int hour = c.get(Calendar.HOUR_OF_DAY);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		int ms = c.get(Calendar.MILLISECOND);
		System.out.print("今天的日期是:"+year+"-"+m+"-"+d);
		System.out.print(",今天星期"+w[week]+" ");
		System.out.print(hour+":"+minute+":"+second+"  "+ms);
	}
}

java 最常用的api 类 java常用api汇总_算法_12

使用日历类去操作日期

操作日期,可以通过add的方式去添加或减少日期, 通过set设置日期

public class CalendarDemo2 {

	public static void main(String[] args) {
		// 获取当前日期日历对象
		Calendar c = Calendar.getInstance();
		//设定自己的日期
		c.set(Calendar.DATE, 7);
		c.set(2022, 12, 18);
		//虽然设置的数字不符合年月日规则,但set方法会自动计算,如果超出会向上进1
		c.set(2021, 1, 32, 26, 12);
		//通过add方法的方式添加或减少日期  负数为减少
		c.add(Calendar.MONTH, -2);
		c.add(Calendar.DATE, 2);
		//获取年月日
		int year = c.get(Calendar.YEAR);
		//国际日历,月份是从0开始11结束
		int month = c.get(Calendar.MONTH)+1;
		int week = c.get(Calendar.DAY_OF_WEEK)-1;
		int day = c.get(Calendar.DATE);
		String[] w = {"日","一","二","三","四","五","六"};
		//获取时分秒
		int hour = c.get(Calendar.HOUR_OF_DAY);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		System.out.print("今天的日期是:"+year+"-"+month+"-"+day+",今天星期"+w[week]+" "+hour+":"+minute+":"+second);
	}
}

java 最常用的api 类 java常用api汇总_开发语言_13

包装类

1.概念

Java提供了两个类型系统,基本类型和引用类型,在使用引用类型时有各种方法使用,但是使用基本数据类型时,我们只能取值和赋值,没有可操作性,因此Java就位基本数据类型提供了可以操作的包装类.使基本类型的数据像对象一样操作.

基本类型

包装类型(位于lang包中)

byte

Byte

short

Short

int

Integer

long

Long

char

Character

float

Float

double

Double

boolean

Boolean

2.装箱与拆箱

基本类型与对应的包装类对象之间,来回转换数据的过程称为"装箱"和"拆箱"

装箱: 从基本数据类型转换为对应的包装类型

拆箱: 从包装类型转换为对应的基本类型

自动执行: 这一过程也叫作自动装箱 和 自动拆箱

使用Integer包装类代表

public class IntegerDemo {

	public static void main(String[] args) {
		//整数包装类,保存整数,装箱过程
		Integer num = new Integer(5);
		//1可以通过对象的方式保存数字,还可以同时转换字符串
		//在字符转换数字过程中,必须保证字符串一定为数字
		Integer num1 = new Integer("6");
		
		//2.手动拆箱,使用intValue()方法将包装类数字转换为基本类型
		int num2 = num.intValue();
		System.out.println("包装类中的数字为:"+num2);
		System.out.println("包装类封装的数字,且转化字符串为:"+num1);
		
		//3.自动装箱和自动拆箱
		Integer num3 = 10;  //将数字直接赋值给包装类,自动封装到包装类中
		int result = num2 + num3;   //基本类型可以与包装类型直接运算,包装类型会自动拆箱
		System.out.println("基本类型与包装类型运算的结果为:"+result);
		
		//4.使用方法转换字符串,其他包装类的转换格式:  包装类.parseXXX(字符串) 
		int num4 = Integer.parseInt("34");
		System.out.println("转换的数字为:"+num4);
	}
}

java 最常用的api 类 java常用api汇总_jvm_14