CodeGym /Java 博客 /随机的 /Java UUID 指南
John Squirrels
第 41 级
San Francisco

Java UUID 指南

已在 随机的 群组中发布
UUID 代表通用唯一标识符,它是一个 128 位长的值,用于标识计算机系统中的信息。UUID 生成器生成的 UUID 被设计为在所有系统和所有时间中都是唯一的。UUID 的长度为 36 个字符(包括连字符),通常以十六进制表示法表示。

Java中的UUID是什么?

Java 中的 UUID 类是java.util包的一部分,提供生成和操作 UUID 的方法。它是Java中常用的用于生成唯一标识符的类。借助 Java 中的 UUID 类,我们可以轻松生成随机 UUID,以及从不同来源(例如字节数组、字符串和长值)创建 UUID。每次调用生成器时我们都可以得到各种不同的生成的UUID。这些生成的 UUID 是唯一的,并且被设计为全局唯一,这意味着相同的 UUID 不会由不同的系统生成两次。我们可以将生成的 UUID 用于多种目的,例如会话 ID、数据库密钥以及唯一性很重要的其他场景。

在Java中生成UUID

要在 Java 中生成 UUID,我们使用java.util.UUID类。java.util.UUID类提供了两种生成 UUID 的方法:randomUUID()nameUUIDFromBytes (byte[] name)。randomUUID ()方法生成随机 UUID。该方法不需要任何参数,并且每次调用时都会生成一个随机 UUID。以下是如何使用randomUUID()方法的示例:
import java.util.UUID;

public class UUIDExample {
    public static void main(String[] args) {
        // generating a random UUID
        UUID uuid = UUID.randomUUID();

        // print the UUID
        System.out.println("Generated UUID: " + uuid);
    }
}

输出

生成的 UUID:d3ee2929-212b-4077-af84-694a0e69b8e1
nameUUIDFromBytes (byte[] name)方法从字节数组生成 UUID。此方法采用字节数组作为参数,并根据字节数组的内容生成 UUID。以下是如何使用nameUUIDFromBytes(byte[] name)方法的示例:
import java.util.UUID;

public class UUIDExample {
    public static void main(String[] args) {
        // generating a UUID from a byte array
        byte[] name = { 1, 2, 3, 4, 5 };
        UUID uuid = UUID.nameUUIDFromBytes(name);

        // print the UUID
        System.out.println("Generated UUID: " + uuid);
    }
}

输出

生成的 UUID:4d6579d4-c3e7-38a1-9246-017e903b2c33

UUID 属性

UUID 具有以下属性:
  • 长度: UUID 的长度为 128 位,这意味着它们包含 16 字节的数据。这个长度使它们适合在计算机系统中使用,因为它们可以有效地存储。
  • 唯一性:两个UUID相同的概率非常低。发生碰撞的几率约为2^128中的1,这是一个极小的数字。
  • 随机性: UUID 使用确保随机性的算法生成。这种随机性使得任何人都很难预测将生成的 UUID。
  • 版本: UUID分为多个版本,每个版本使用不同的算法来生成UUID。最常用的版本是版本 1 和版本 4。版本 1 UUID 是使用当前时间和生成 UUID 的计算机的 MAC 地址生成的。版本 4 UUID 是使用随机数生成的。

UUID 的长度

UUID 是一个 128 位值,由 36 个字符的字符串表示。该字符串包含 32 个十六进制数字,分为 8、4、4、4 和 12 位数字组,用连字符分隔。以下是 UUID 字符串的示例:
123e4567-e89b-12d3-a456-426655440000
示例 UUID:以下是使用randomUUID()方法生成的示例 UUID :
d3ee2929-212b-4077-af84-694a0e69b8e1
此 UUID 由 32 个十六进制数字组成,分为 8、4、4、4 和 12 位数字组,并用连字符分隔。在上面的示例 UUID 中,当我们谈论 Java 中的 UUID 类时,术语“生成 UUID”是指使用java.util.UUID类创建新 UUID 的过程。此过程涉及调用 UUID 类的静态工厂方法之一,例如randomUUID()nameUUIDFromBytes(byte[])。一旦我们调用其中一个方法, Java 中的UUID类就会创建一个新的 UUID 并将其返回给我们。然后可以根据需要在我们的应用程序中使用这些生成的 UUID。

结论

在本文中,我们讨论了 UUID 是什么以及如何使用Java 中的java.util.UUID类生成它们。我们还研究了 UUID 的属性,包括长度、唯一性、随机性和版本。UUID 广泛用于计算机系统中,以独特的方式识别信息。它们在多台计算机或节点需要访问和操作数据的分布式系统和数据库中非常有用。使用Java中的java.util.UUID类,您可以轻松地在Java项目中生成UUID。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION