在 Java 中创建 GUID

什么是 GUID

GUID 是 Globally Unique Identifier 的缩写。通常也将其称为通用唯一标识符UUID。这两个词之间没有真正的区别。从技术上讲,它们是 128 位不变的,唯一的,加密强度高的随机数。这些随机数最终被用于计算目的。生成此类数字的算法非常复杂,以至于每秒可能生成 1,0000,000,000 个随机数。这些数字不太可能重复。

我们在软件开发实践和方法中使用 GUID 或 UUID,在这种情况下,我们希望使用唯一的 ID 作为主键(例如数据库键,组件标识符和各种事务)进行大型事务。

使用 randomUUID() 方法生成 UUID 的示例代码

package guid;
import java.util.UUID;
public class CreateGuid {
    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        System.out.println("UUID = " + uuid.toString());
    }
}

在 Java 语言中,UUID 类在 1.5 版以后可用。该类位于 java.util.UUID 包中。randomUUID() 方法是一种静态工厂方法,用于检索类型 4(伪随机生成的)UUID。由于该方法是 UUID 类的静态工厂方法,因此需要类名才能调用该方法。

上述程序的输出似乎是唯一生成的 UUID。

UUID = 70aba303-60d8-4cb5-b3e7-4170c4be5642

使用 UUID 构造函数fromString() 方法生成 UUID 的示例代码:

在下面的程序中,UUID 类构造函数用于生成 UUID。构造函数有两个参数:mostSignificantBitsleastSignificantBits

mostSignificantBits 用于 UUID 的最高有效 64 位,而 leastSignificantBits 用于最低 UUID 64 位。

fromString() 方法是一种静态工厂方法,可从字符串标准表示形式创建 UUID。上面的方法以字符串为参数。因此,在 uuid 对象上,内联函数中调用了 toString() 方法。

如果名称不符合 toString 方法中描述的字符串表示形式,则 fromString 方法将引发 IllegalArgumentException

package guid;
import java.util.UUID;
public class GenerateGuidUsingConstructor {
    public static void main(String[] args) {
        UUID uuid = new UUID(24, 02);
        System.out.println(UUID.fromString(uuid.toString()));
    }
}

以下是从构造函数生成的 UUID 的输出。

00000000-0000-0018-0000-000000000002