相信大家对Java标识符已经有所了解,在本教程中,我们将学习在 Java 中生成 UUID 的不同方法。我们将学习如何创建随机 UUID、基于时间的 UUID 和基于名称的 UUID。
UUID 是一个通用的唯一标识符,它是一个基于 Object 或 Entity 的 128 位唯一标识符。还有一点需要注意,它是 8-4-4-4-12 字符的组合,下面给出了 UUID 的示例:
b9f13c95-d38d-5669-a7c6-874be297df03
在 Java 中创建 UUID 主要有 3 种方法,下面是它们的列表。
基于时间的 UUID。
随机生成的 UUID。
基于名称的 UUID。
如果您想使用核心 Java 创建一个随机 UUID,那么您可以简单地在 Java 中使用java.util.UUID。但是这里要注意的重要一点是,通过使用java.util.UUID,我们只能创建随机 UUID。
对于基于时间和基于名称的 UUID 的生成,我们需要一个第三方库,我们将在下一节中讨论。
下面是生成随机 UUID 的代码片段。
package com.generateUUIDexample;
import java.util.UUID;
public class RandomUUIDExample {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println("Random UUID is: " + uuid.toString());
System.out.println("UUID version is: " + uuid.version());
}
}
Random UUID is: 490de1e1-70ed-41fd-9de5-64e2d81ee121
UUID version is: 4
接下来是我们如何生成基于时间和基于名称的 UUID。以下部分解释了如何生成基于名称的 UUID。
为此,我们需要一个第三方依赖项 com.fasterxml.uuid。以下是对此的 Maven 依赖项:
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
<version>3.1.4</version>
</dependency>
让我们看一下在 Java 中获取 Timebase UUID 的完整代码片段。
package com;
import com.fasterxml.uuid.Generators;
import java.util.UUID;
public class TimeBaseUUIDExample {
public static void main(String[] args) {
UUID timeBaseUUID = Generators.timeBasedGenerator().generate();
System.out.println(" Time based UUID :" + timeBaseUUID.toString());
System.out.println(" UUID version is :" + timeBaseUUID.version());
System.out.println(" UUID Node is :" + timeBaseUUID.node());
System.out.println(" UUID Timestamp : " + timeBaseUUID.timestamp());
}
}
Time based UUID :62a3be6a-13d6-11ec-95e9-6b8a161c7b54
UUID version is :1
UUID Node is :118240820624212
UUID Timestamp : 138507500040470122
接下来是 Java 中基于名称的通用 UUID。
我们可以使用我们用来生成基于时间的 UUID 的同一个库来生成基于名称的 UUID。
Generators.nameBasedGenerator()根据传入的字符串生成 UUID。如果你一次又一次地传递相同的字符串,那么它总是为相同的输入生成一个类似的 UUID。
下面是这个的代码片段。
package com;
import com.fasterxml.uuid.Generators;
import java.util.UUID;
public class NameBaseUUIDExample {
public static void main(String[] args) {
UUID namebaseUUID = Generators.nameBasedGenerator().generate(
"codezup.com");
System.out.println("Name based UUID :" + namebaseUUID
.toString());
System.out.println("UUID version : " + namebaseUUID
.version());
}
}
Name based UUID :b9f13c95-d38d-5669-a7c6-874be297df03
UUID version : 5
以上就是关于“Java中生成唯一标识符的方法”介绍,大家如果想了解更多相关知识,不妨来关注一下本站的Java教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习