CodeGym /Java Blog /Toto sisi /Java UUID 指南
John Squirrels
等級 41
San Francisco

Java UUID 指南

在 Toto sisi 群組發布
UUID 代表通用唯一標識符,它是一個 128 位元長的值,用於識別電腦系統中的資訊。UUID 產生器產生的 UUID 被設計為在所有系統和所有時間中都是唯一的。UUID 的長度為 36 個字元(包括連字號),通常以十六進位表示法表示。

Java中的UUID是什麼?

Java 中的 UUID 類別是java.util套件的一部分,提供產生和操作 UUID 的方法。它是Java中常用的用於產生唯一識別碼的類別。借助 Java 中的 UUID 類,我們可以輕鬆產生隨機 UUID,以及從不同來源(例如位元組數組、字串和長值)建立 UUID。每次呼叫生成器時我們都可以得到各種不同的生成的UUID。這些產生的 UUID 是唯一的,並且被設計為全域唯一,這意味著相同的 UUID 不會由不同的系統產生兩次。我們可以將產生的 UUID 用於多種目的,例如會話 ID、資料庫金鑰以及唯一性很重要的其他場景。

在Java中產生UUID

要在 Java 中產生 UUID,我們使用java.util.UUID類別。java.util.UUID類別提供了兩種產生 UUID 的方法:randomUUID()nameUUIDFromBytes (byte[] name)。randomUUID ()方法產生隨機 UUID。此方法不需要任何參數,每次呼叫時都會產生一個隨機 UUID。以下是如何使用randomUUID()方法的範例:
import java.util.UUID;

public class UUIDExample {
    public static void main(String[] args) {
        // generating a random UUID
        UUID uuid = UUID.randomUUID();

        // print the UUID
        System.out.println("Generated UUID: " + uuid);
    }
}

輸出

產生的 UUID:d3ee2929-212b-4077-af84-694a0e69b8e1
nameUUIDFromBytes (byte[] name)方法從位元組陣列產生 UUID。此方法採用位元組數組作為參數,並根據位元組數組的內容產生 UUID。以下是如何使用nameUUIDFromBytes(byte[] name)方法的範例:
import java.util.UUID;

public class UUIDExample {
    public static void main(String[] args) {
        // generating a UUID from a byte array
        byte[] name = { 1, 2, 3, 4, 5 };
        UUID uuid = UUID.nameUUIDFromBytes(name);

        // print the UUID
        System.out.println("Generated UUID: " + uuid);
    }
}

輸出

產生的 UUID:4d6579d4-c3e7-38a1-9246-017e903b2c33

UUID 屬性

UUID 具有以下屬性:
  • 長度: UUID 的長度為 128 位,這表示它們包含 16 個位元組的資料。這個長度使它們適合在電腦系統中使用,因為它們可以有效地儲存。
  • 唯一性:兩個UUID相同的機率非常低。發生碰撞的幾率約為2^128中的1,這是一個極小的數字。
  • 隨機性: UUID 使用確保隨機性的演算法產生。這種隨機性使得任何人都很難預測將產生的 UUID。
  • 版本: UUID分為多個版本,每個版本使用不同的演算法來產生UUID。最常用的版本是版本 1 和版本 4。版本 1 UUID 是使用目前時間和產生 UUID 的電腦的 MAC 位址產生的。版本 4 UUID 是使用隨機數產生的。

UUID 的長度

UUID 是一個 128 位元值,由 36 個字元的字串表示。字串包含 32 個十六進位數字,分為 8、4、4、4 和 12 位元數字組,以連字號分隔。以下是 UUID 字串的範例:
123e4567-e89b-12d3-a456-426655440000
範例 UUID:以下是使用randomUUID()方法產生的範例 UUID :
d3ee2929-212b-4077-af84-694a0e69b8e1
此 UUID 由 32 個十六進位數字組成,分為 8、4、4、4 和 12 位元數字組,並以連字號分隔。在上面的範例 UUID 中,當我們談論 Java 中的 UUID 類別時,術語「產生 UUID」是指使用java.util.UUID類別建立新 UUID 的過程。此過程涉及呼叫 UUID 類別的靜態工廠方法之一,例如randomUUID()nameUUIDFromBytes(byte[])。一旦我們呼叫其中一個方法, Java 中的UUID類別就會建立一個新的 UUID 並將其傳回給我們。然後可以根據需要在我們的應用程式中使用這些產生的 UUID。

結論

在本文中,我們討論了 UUID 是什麼以及如何使用Java 中的java.util.UUID類別來產生它們。我們也研究了 UUID 的屬性,包括長度、唯一性、隨機性和版本。UUID 廣泛用於電腦系統中,以獨特的方式識別資訊。它們在多台電腦或節點需要存取和操作資料的分散式系統和資料庫中非常有用。使用Java中的java.util.UUID類,您可以輕鬆地在Java專案中產生UUID。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION