import java.util.UUID;
/*
** 唯一Id生成器
*/
public class UidGenerator {
// 获取字符串类型的唯一Id
public static String getStringUid() {
UUID uuid = UUID.randomUUID();
return uuid.toString();
}
// 获取Long类型的唯一Id
public static long getLongUid() {
UUID uuid = UUID.randomUUID();
long mostSigBits = uuid.getMostSignificantBits();
long leastSigBits = uuid.getLeastSignificantBits();
return mostSigBits ^ leastSigBits; //取异或值作为long类型id
}
public static void main(String[] args) {
System.out.println(getStringUid()); // 获取字符串类型的唯一Id
System.out.println(getStringUid()); // 获取字符串类型的唯一Id
System.out.println(getStringUid()); // 获取字符串类型的唯一Id
System.out.println(getLongUid()); // 获取Long类型的唯一Id
System.out.println(getLongUid()); // 获取Long类型的唯一Id
System.out.println(getLongUid()); // 获取Long类型的唯一Id
}
}
运行结果:
b064c666-8f57-4e70-b895-973e7300bc57
901ad038-a30d-41a7-9e3c-d33293b84c3a
8f430555-6ae7-43f0-8983-3791635192d1
9045785636418057792
1884943524962642817
6267011038079723977
每次生成的Id都是唯一的。
该Java代码示例展示了一个UidGenerator类,用于生成两种类型的唯一ID:字符串类型和Long类型。通过UUID.randomUUID()方法获取随机UUID,然后转换为字符串或通过异或操作转化为Long值,确保每次生成的ID都是唯一的。
5547

被折叠的 条评论
为什么被折叠?



