UUID是啥,UID又是个啥?

  • admin
  • 2025-10-27 13:09:42

UID(Serial Version UID)和UUID(Universally Unique Identifier)是两种不同的概念,分别在Java序列化和通用唯一标识符领域中使用。以下是它们的详细介绍:

1. Serial Version UID (UID)

定义:在Java中,serialVersionUID是一个静态常量,用于表示一个类的版本信息,以便在序列化和反序列化过程中进行版本控制。

用途:

确保序列化对象的兼容性。如果一个类在序列化后被修改,其serialVersionUID也应该相应地更改,以避免反序列化时发生InvalidClassException异常。在未显式定义的情况下,Java会根据类的特征自动生成serialVersionUID,但这可能导致不同机器上的不一致性,因此推荐手动定义。

示例:

2. Universally Unique Identifier (UUID)

定义:UUID是一种用于在计算机系统中唯一标识信息的标准格式。UUID是128位长的数字,通常以32个十六进制字符的形式表示,分为五个部分,格式为8-4-4-4-12(例如:550e8400-e29b-41d4-a716-446655440000)。

用途:

用于生成唯一标识符,例如数据库主键、会话ID、文件名等,以避免冲突。因其生成的概率极小,可以认为UUID是全局唯一的。

生成:可以通过Java的java.util.UUID类轻松生成UUID。例如:

总结

Serial Version UID (UID) 是用于Java对象序列化的版本控制标识符,确保在序列化和反序列化过程中保持兼容性。Universally Unique Identifier (UUID) 是一种广泛使用的唯一标识符,用于标识信息以避免冲突,可以在分布式系统中生成唯一值。这两个概念在功能和用途上是完全不同的,分别用于不同的场景。