UUID 生成
UuidUtil
UUID 工具类,提供 UUID 生成与转换能力
UuidUtil
UuidUtil 是筱工具(Java) 的 UUID 工具类,位于 com.xlf.utility.utility 包下。提供 UUID 生成、转换与格式化等静态方法。
类定义
package com.xlf.utility.utility;
import java.util.UUID;
public class UuidUtil {
// 静态方法,无需实例化
}方法列表
生成方法
字段
类型
转换方法
字段
类型
从字符串生成
字段
类型
使用示例
生成随机 UUID
import com.xlf.utility.utility.UuidUtil;
// 生成标准 UUID(带横杠)
String uuid = UuidUtil.generateStringUuid();
// 输出: "550e8400-e29b-41d4-a716-446655440000"
// 生成无横杠 UUID
String uuidNoDash = UuidUtil.generateUuidNoDash();
// 输出: "550e8400e29b41d4a716446655440000"
// 生成 UUID 对象
UUID uuidObj = UuidUtil.generateUuid();生成链路追踪 ID
import com.xlf.utility.utility.UuidUtil;
public class TraceService {
public String generateTraceId() {
// 使用无横杠 UUID 作为链路追踪 ID
return UuidUtil.generateUuidNoDash();
}
}从字符串生成确定性 UUID
import com.xlf.utility.utility.UuidUtil;
public class GravatarService {
public String getGravatarUrl(String email) {
// 根据邮箱生成确定性 UUID(相同邮箱始终生成相同结果)
String hash = UuidUtil.makeUuidFromStringNoDash(email.toLowerCase());
return "https://www.gravatar.com/avatar/" + hash;
}
}UUID 转换
import com.xlf.utility.utility.UuidUtil;
import java.util.UUID;
// 字符串转 UUID 对象
UUID uuid = UuidUtil.convertToUuid("550e8400-e29b-41d4-a716-446655440000");UUID 格式说明
标准格式(36 位):
550e8400-e29b-41d4-a716-446655440000
└─8位─┘ └─4位┘ └─4位┘ └─4位┘ └───12位───┘
无横杠格式(32 位):
550e8400e29b41d4a716446655440000与 UUID v7 的区别
| 特性 | UUID v4 (UuidUtil) | UUID v7 (UuidV7Generator) |
|---|---|---|
| 排序性 | 随机,无序 | 时间有序 |
| 碰撞概率 | 理论上存在 | 极低 |
| 适用场景 | 链路追踪、临时 ID | 数据库主键、分布式 ID |
| 性能 | 高 | 略低(需获取时间戳) |