如何在 Java 中创建唯一 ID

How to create Unique Id in Java

我有如下代码:

D00077B4-EBFB-4BD8-9E3F-1F3943CBCE35

我想知道如何在 Java 中生成这样的代码。

这是一个UUID,"a 128-bit number used to identify information in computer systems"。

格式解释为:

In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). For example:

123e4567-e89b-12d3-a456-426655440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

How to generate the code like this using Java?

// Create a random UUID:
UUID uuid1 = UUID.randomUUID();
System.out.println(uuid1);

// Create a fixed UUID:
String uuidString = "D00077B4-EBFB-4BD8-9E3F-1F3943CBCE35";
UUID uuid2 = UUID.fromString(uuidString);
System.out.println(uuid2);

// Get string from UUID:
UUID uuid = ...
String s = uuid.toString();
System.out.println(s);

这是一个 GUID 或 UUID,您可以在这里阅读更多内容:

https://en.wikipedia.org/wiki/Universally_unique_identifier

你可以用java.util.UUID生成一个:

http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html

import java.util.UUID;

public class RandomStringUUID {
    public static void main(String[] args) {
        // Creating a random UUID (Universally unique identifier).
        UUID uuid = UUID.randomUUID();
        String randomUUIDString = uuid.toString();

        System.out.println("Random UUID String = " + randomUUIDString);
        System.out.println("UUID version       = " + uuid.version());
        System.out.println("UUID variant       = " + uuid.variant());
    }
}