JAVA生成UUID的方法总结

本文介绍UUID的概念及其在分布式系统中的作用,提供了生成32位UUID的Java代码示例,并探讨了UUID作为数据库主键的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    

前言

        我们开发的时候,数据库表总会有一个主键,以前我们可能会使用自增的数字作为主键。这样做确实查询的时候比较快,

但是在做系统集成或者数据迁移的的时候就麻烦了。这是id就有可能重复了。那么有什么比较好的方法解决这一问题呢?

于是jdk1.5出了UUID这个类来生成唯一的字符串标识。

什么是UUID?

 UUID有什么用?      

UUID的组成?

UUID的应用?

使用UUID的好处在分布式的软件系统中(比如:DCE/RPC, COM+,CORBA)就能体现出来, 
它能保证每个节点所生成的标识都不会重复,并且随着WEB服务等整合技术的发展,UUID的优势将更加明显。根据使用的特定机制,UUID不仅需要保证是彼此不相同的,或者最少也是 
与公元3400年之前其他任何生成的通用唯一标识符有非常大的区别。UUID最少在3000+年内不会重复。 
这也是通用唯一标识符的一种类型,可用来指向组建对象模块对象和其他的软件组件。第一个通用唯一标 
识符是在网络计算机系统(NCS)中创建,并且随后成为开放软件基金会(OSF)的分布式计算环境(DCE)的组件。

*****怎么生成UUID*****

public static String getUUID32(){
    String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
    return uuid;
//  return UUID.randomUUID().toString().replace("-", "").toLowerCase();
}

注:因为一般数据库主键为String类型,所以接收类型为String,生成的uuid数据包含-,所以要去掉-,故UUID.randomUUID().toString().replace("-", "").toLowerCase()

### 如何在 Java生成 UUID Java 提供了一个内置类 `java.util.UUID` 来生成全局唯一的标识符 (UUID)[^1]。以下是几种常见的生成 UUID 的方式及其对应的代码示例。 #### 方法一:生成标准的随机 UUID 通过调用 `UUID.randomUUID()` 方法可以轻松生成一个随机的 UUID。此方法基于时间和伪随机数生成器来确保唯一性[^2]。 ```java import java.util.UUID; public class StandardUUIDGenerator { public static void main(String[] args) { // 生成随机UUID UUID uuid = UUID.randomUUID(); // 输出生成UUID System.out.println("随机生成的标准UUID: " + uuid); } } ``` #### 方法二:生成UUID(8位) 有时为了节省存储空间或者便于展示,可能需要生成更短的 UUID。可以通过对标准 UUID 进行处理,将其缩短到指定长度。以下是一个生成固定长度为 8 位的短 UUID 的例子[^3]: ```java import java.util.UUID; import java.math.BigInteger; public class ShortUUIDGenerator { public static void main(String[] args) { String shortUUID = generateShortUUID(); System.out.println("生成的8位短UUID: " + shortUUID); } public static String generateShortUUID() { // 生成标准UUID UUID uuid = UUID.randomUUID(); // 转换为BigInteger并取模以缩小范围 BigInteger bigInt = new BigInteger(uuid.toString().replace("-", ""), 16); String shortUUID = bigInt.mod(new BigInteger("FFFFFFFF", 16)).toString(16).toUpperCase(); // 补齐至8位 return String.format("%08s", shortUUID); } } ``` #### 方法三:理解 UUID生成机制 UUID 是一种标准化的全局唯一标识符,其生成依赖于多种因素,如时间戳、MAC 地址、名称空间等。这种复杂的结构设计旨在最大限度地减少冲突的可能性[^4]。尽管如此,在实际应用中通常无需深入了解底层算法即可使用该功能。 --- ### 总结 以上展示了两种主要的 Java UUID 生成功能——完整的随机 UUID 和简化的短 UUID。前者适用于大多数场景下的唯一标识需求;后者则适合那些希望平衡唯一性和简洁性的场合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值