Java常用API
1.Math
Math包含执行基本数字运算的方法
-
演示:
- public static int abs(int a)
System.out.println(Math.abs(22)); System.out.println(Math.abs(-22)); // 输出结果 22 22
- public static double ceil(double a)
System.out.println(Math.ceil(12.34)); System.out.println(Math.ceil(12.78)); // 输出结果 13.0 13.0
- public static double floor(double a)
System.out.println(Math.floor(12.34)); System.out.println(Math.floor(12.78)); // 输出结果 12.0 12.0
- public static int round(float a)
System.out.println(Math.round(12.34F)); System.out.println(Math.round(12.78F)); // 输出结果 12 13
- public static int max(int a,int b)
System.out.println(Math.max(66,88)); // 输出结果 88
- public static int min(int a,int b)
System.out.println(Math.min(66,88)); // 输出结果 66
- public static double pow(double a,double b)
System.out.println(Math.pow(2.0,3.0)); // 输出结果 8.0
- public static double random()
// 所得数乘以 100 // 把double 类型强转为 int 类型 System.out.println((int)(Math.random()*100)); // 输出结果 [0,100)的整数 第一次运行:42 第一次运行:86
2.System
System包含几个有用的类字段和方法,它不能被实例化
System常用方法:
-
演示:
- public static void exit(int status)
System.out.println("开始"); // 正常终止程序 System.exit(0) System.out.println("结束"); // 输出结果 开始
- public static long currentTimeMillis()
// 1970年1月1日00:00:00和当前时间所差的毫秒数 System.out.println(System.currentTimeMillis()); // 将毫秒数装换为 年 为单位 System.out.println(System.currentTimeMillis()*1.0/1000/60/60/24/365 +"年"); // 记录程序执行所耗的时间 long start = System.currentTimeMillis(); System.out.println("开始"); System.out.println("结束"); long end = System.currentTimeMillis(); System.out.println("共耗时:"+(end - start)+"毫秒");
3.Object
Object是类层次结构的根,每一个类都可以将Object作为超类。所有类都直接或间接的继承该类
构造方法:public Object()
回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法呢?
因为它们的顶级父类Object只有无参构造方法
Object默认提供的 equals() 方法是 比较两个对象的 地址值 是否相同。
如果想比较两个对象的 成员内容 是否相同,需要该类重写 equals() 方法。
4.Arrays
Arrays类包含用于操作数组的各种方法(如排序和搜索)。
- boolean equals(int[] a,int[] b) :判断两个数组是否相等
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1,arr2);
System.out.println(isEquals);
// 输出结果
false
2.String toString(int[] a) :输出数组信息
int[] arr1 = new int[]{1,2,3,4};
System.out.println(Arrays.toString(arr1));
// 输出结果
[1, 2, 3, 4]
3.void fill(int[] a,int val) :将指定值填充数组当中
int[] arr1 = new int[]{1,2,3,4};
Arrays.fill(arr1,10);
System.out.println(Arrays.toString(arr1));
// 输出结果
[10, 10, 10, 10]
4.void sort(int[] a) :对数组进行排序
int[] arr2 = new int[]{1,3,2,4};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
// 输出结果
[1, 2, 3, 4]
5.int binarySearch(int[] a,int key) :查找关键数值在数组中的位置
int[] arr3 = new int[]{-89,99,67,58,0,-72,66,36,-24,58};
int index = Arrays.binarySearch(arr3,0);
if(index >= 0){
System.out.println(index);
}else{
System.out.println("没找到!!");
}
// 输出结果
4
5.基本类型包装类
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常见的操作之一:用于基本数据类型与字符串之间的转换
Integer(int类型的包装类类型)
Integer:包装一个对象中的原始类型int的值
Integer拥有的常量--即int类型的范围 -2的31次方 ~ 2的31次方减1
- Integer.MIN_VALUE = -2147483648
- Integer.MAX_VALUE = 2147483647
int 和 String 类型的相互转换(其他类型的类似)
- int --> String
int number = 100;
// 方式一
String s1 = "" + number;
System.out.println(s1);
// 方式二
String s2 = String.valueOf(number);
System.out.println(s2);
// 输出结果
100
100
- String --> int
String s = "100";
// 方式一(String-->Integer-->int)
Integer i = Integer.valueOf(s);
int number1 = i.intValue();
System.out.println(number1);
// 方式二(String-->int)
int number2 = Integer.parseInt(s);
System.out.println(number2);
// 输出结果
100
100
6.日期类
Date
Date类代表了一个特定的时间,精确到毫秒。
- Date类的构造方法
- Date类的常用方法
- public long getTime()
// 导包--别导错了
import java.util.Date;
// 创建日期对象
Date d = new Date();
System.out.println(d.getTime());
// 把 毫秒值 转换成 年数
System.out.println(d.getTime()*1.0/1000/60/60/24/365 + "年");
2.public void setTime(long time)
// 导包--别导错了
import java.util.Date;
// 创建日期对象
Date d = new Date();
// 定义一个 1小时 的变量
long time = 1000*60*60;
d.setTime(time);
// 即为 1970年1月1日00:00:00 加上赋值的 毫秒变量 的最终时间
// 但由于时区不同,使用结果会不同
System.out.println(d);
SimpleDateFormat
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。它允许格式化(日期文本),解析(文本日期)和规范化。
日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从'A'到'Z'以及从'a'到'z'引号的字母被解释为表示日期或时间字符串的组件的模式字母
常用的模式字母及对应关系如下:
y | 年 |
---|---|
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
SimpleDateFormat的构造方法:
格式化演示:
// 导包
import java.util.Date;
import java.text.SimpleDateFormat;
Date d = new Date();
//SimpleDateFormat sdf = new SimpleDateFormat();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String time = sdf.format(d);
System.out.println(time);
解析演示:
// 导包
import java.util.Date;
import java.text.SimpleDateFormat;
// 两个格式要一致
String time = "2022-01-07 20:21:22";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date d = sdf.parse(time);
System.out.println(d);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。
Calendar提供了一个类方法 getInstance 用于获取 Calendar 对象,其日历字段已使用当前日期和时间进行了初始化:Calendar rightNow = Calendar.getInstance();
Calendar的常用方法:
- public int get(int field)
// 创建对象
Calendar c = Calendar.getInstance(); // 以多态的形式创建
// 获取当前时间的 年 月 日
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1; //Calendar的月是从0月开始的,故要加1
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
2.public abstract void add(int field,int amount)
// 创建对象
Calendar c = Calendar.getInstance(); // 以多态的形式创建
// 需求:10年后 的 5天前 的日期
c.add(Calendar.YEAR,10);
c.add(Calendar.DATE,-5);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1; //Calendar的月是从0月开始的,故要加1
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
3.public final void set(int year,int month,int date)
// 创建对象
Calendar c = Calendar.getInstance(); // 以多态的形式创建
// 需求:设置 自定义 的日期,如:2025年10月1日
c.set(2025,9,1);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1; //Calendar的月是从0月开始的,故要加1
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
本文来自博客园,作者:早晨9点,转载请注明原文链接:https://www.cnblogs.com/onesun/p/15776871.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性