Java常用API

结城 Java 5 次阅读 899 字 发布于 17 天前 预计阅读时间: 4 分钟


1.Math类

Math 类提供了用于执行基本数学运算的方法,均为静态方法,直接通过类名调用。

功能API 示例备注
求绝对值Math.abs(x)支持 int, long, float, double
求幂次Math.pow(x, p)$x^p$(x 为底数,p 为指数),返回 double
求开平方根Math.sqrt(x)$\sqrt{x}$,返回 double
求最大值Math.max(a, b)返回 a 和 b 中较大的那个数
求最小值Math.min(a, b)返回 a 和 b 中较小的那个数
四舍五入Math.round(x)原理是$x + 0.5$后向下取整

2.包装类

2.1.对应关系

包装类使基本数据类型具备了面向对象的特性(如能放入集合、作为泛型等)。

  • byte $\rightarrow$ Byte
  • short $\rightarrow$ Short
  • int $\rightarrow$ Integer
  • long $\rightarrow$ Long
  • float $\rightarrow$ Float
  • double $\rightarrow$ Double
  • char $\rightarrow$ Character
  • boolean $\rightarrow$ Boolean

2.2.核心操作

自动装箱(基本类型 $\rightarrow$ 包装类):

Integer x = 10; // 编译器自动实现:Integer.valueOf(10)

字符串转基本类型(实现计算):

int x = Integer.parseInt("123");
double y = Double.parseDouble("3.14");

3.时间与日期类

3.1.Date类

核心作用: 主要用于表示特定的瞬间(精确到毫秒),常用于​计算时间差

时间戳原理: 计算机内部以 1970年1月1日 00:00:00 GMT​ 为基准(即 0),每过 1 毫秒数字加 1。

常用代码:

Date d = new Date();
long time = d.getTime(); // 返回当前时间的毫秒数(时间戳)

3.2.Calendar类

核心作用: 用于获取或修改年、月、日、时、分、秒。支持自动进位计算。

常用代码:

Calendar cal = Calendar.getInstance();

// 获取时间(注意:Calendar 内部月份从 0 开始计数,即 0 代表 1 月)
int year  = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 💡 修正:获取后再加 1,不要写在 get() 里面
int date  = cal.get(Calendar.DATE);
int hour  = cal.get(Calendar.HOUR_OF_DAY); // 24小时制
int min   = cal.get(Calendar.MINUTE);
int sec   = cal.get(Calendar.SECOND);

// 修改时间(支持自动进位,如 1月31日 加 30 天会自动变成 3月)
cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 30);

3.3.Date与Calendar互相转换

Date d = new Date();
Calendar cal = Calendar.getInstance();

// 1. Date 转 Calendar
cal.setTime(d);

// 2. Calendar 转 Date
Date d2 = cal.getTime();

4.SimpleDateFormat

核心作用: 实现 Date​ 对象与 String 字符串之间的相互转换。

常见格式模式: "yyyy-MM-dd HH:mm:ss"​(HH​ 表示24小时制,hh 表示12小时制)。

4.1.格式化(Format): Date $\rightarrow$ String

Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(d); 
System.out.println(str); // 输出格式如: 2026-06-01 16:09:58

4.2.解析(Parse): String $\rightarrow$ Date

⚠️ 注意: parse​ 方法会抛出 ParseException​ 编译时异常,必须进行异常处理(try-catch​ 或 throws)。

String str = "2026-04-01 12:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
    Date d = sdf.parse(str);
    System.out.println(d);
} catch (ParseException e) {
    e.printStackTrace(); // 字符串格式与 pattern 不符时触发
}

5.实战案例:计算时间差

通过获取两个时间点的毫秒级时间戳,计算相差的具体小时和分钟:

// 模拟两个时间点(此处以相隔一段时间的示例为准)
Date d1 = new Date();
// ... 期间执行了某些操作,或者读取了另一个时间 ...
Date d2 = new Date();

long diff = d2.getTime() - d1.getTime(); // 1. 获取毫秒级时间差
long diffSec = diff / 1000;              // 2. 转换为总秒数
long diffMin = diffSec / 60;             // 3. 转换为总分钟数

// 4. 拆分为 "XX小时XX分钟"
long diffPastHour = diffMin / 60;        // 💡 修正:使用 long 类型保持一致
long diffPastMin = diffMin % 60;

System.out.println("经过了 " + diffPastHour + " 小时 " + diffPastMin + " 分钟");
给时光以生命,给岁月以文明
最后更新于 2026-06-15