更新時(shí)間:2022-10-31 09:47:39 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3050次
相信大家對(duì)Java標(biāo)識(shí)符已經(jīng)有所了解,在本教程中,我們將學(xué)習(xí)在 Java 中生成 UUID 的不同方法。我們將學(xué)習(xí)如何創(chuàng)建隨機(jī) UUID、基于時(shí)間的 UUID 和基于名稱的 UUID。
UUID 是一個(gè)通用的唯一標(biāo)識(shí)符,它是一個(gè)基于 Object 或 Entity 的 128 位唯一標(biāo)識(shí)符。還有一點(diǎn)需要注意,它是 8-4-4-4-12 字符的組合,下面給出了 UUID 的示例:
b9f13c95-d38d-5669-a7c6-874be297df03
在 Java 中創(chuàng)建 UUID 主要有 3 種方法,下面是它們的列表。
基于時(shí)間的 UUID。
隨機(jī)生成的 UUID。
基于名稱的 UUID。
如果您想使用核心 Java 創(chuàng)建一個(gè)隨機(jī) UUID,那么您可以簡(jiǎn)單地在 Java 中使用java.util.UUID。但是這里要注意的重要一點(diǎn)是,通過使用java.util.UUID,我們只能創(chuàng)建隨機(jī) UUID。
對(duì)于基于時(shí)間和基于名稱的 UUID 的生成,我們需要一個(gè)第三方庫(kù),我們將在下一節(jié)中討論。
下面是生成隨機(jī) 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
接下來是我們?nèi)绾紊苫跁r(shí)間和基于名稱的 UUID。以下部分解釋了如何生成基于名稱的 UUID。
為此,我們需要一個(gè)第三方依賴項(xiàng) com.fasterxml.uuid。以下是對(duì)此的 Maven 依賴項(xiàng):
<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。
我們可以使用我們用來生成基于時(shí)間的 UUID 的同一個(gè)庫(kù)來生成基于名稱的 UUID。
Generators.nameBasedGenerator()根據(jù)傳入的字符串生成 UUID。如果你一次又一次地傳遞相同的字符串,那么它總是為相同的輸入生成一個(gè)類似的 UUID。
下面是這個(gè)的代碼片段。
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
以上就是關(guān)于“Java中生成唯一標(biāo)識(shí)符的方法”介紹,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下本站的Java教程,里面還有更豐富的知識(shí)等著大家去學(xué)習(xí),希望對(duì)大家能夠有所幫助。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)