更新時間:2022-10-31 09:47:39 來源:動力節點 瀏覽2424次
相信大家對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教程,里面還有更豐富的知識等著大家去學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習