专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Java中生成唯一标识符的方法

Java中生成唯一标识符的方法

更新时间:2022-10-31 09:47:39 来源:动力节点 浏览1258次

相信大家对Java标识符已经有所了解,在本教程中,我们将学习在 Java 中生成 UUID 的不同方法。我们将学习如何创建随机 UUID、基于时间的 UUID 和基于名称的 UUID。

概述

UUID 是一个通用的唯一标识符,它是一个基于 Object 或 Entity 的 128 位唯一标识符。还有一点需要注意,它是 8-4-4-4-12 字符的组合,下面给出了 UUID 的示例:

b9f13c95-d38d-5669-a7c6-874be297df03

生成 UUID 的不同方法

在 Java 中创建 UUID 主要有 3 种方法,下面是它们的列表。

基于时间的 UUID。

随机生成的 UUID。

基于名称的 UUID。

在 Java 中生成随机 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。

生成时基 UUID Java 示例

为此,我们需要一个第三方依赖项 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 的同一个库来生成基于名称的 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教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>