• <menu id="imuyi"><tt id="imuyi"></tt></menu>
  • 專注Java教育13年 全國咨詢/投訴熱線:400-8080-105
    動力節點LOGO圖
    始于2009,一家只教授Java的培訓機構
    首頁 hot資訊 Java中生成唯一標識符的方法

    Java中生成唯一標識符的方法

    更新時間:2022-10-31 09:47:39 來源:動力節點 瀏覽42次

    相信大家對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教程,里面還有更豐富的知識等著大家去學習,希望對大家能夠有所幫助。

    提交申請后,顧問老師會電話與您溝通安排學習

    免費課程推薦 >>
    技術文檔推薦 >>
    返回頂部
    小敏爽?好舒服?快?好大
  • <menu id="imuyi"><tt id="imuyi"></tt></menu>