GUID (Globally Unique Identifier) 為 128 位整數,通常以 16 進制字串表示(如 550e8400-e29b-41d4-a716-446655440000)。演算法結合網卡 MAC、時間戳、隨機數,理論上極難重複。
JDK 1.5 引入 java.util.UUID,提供基於隨機數的 randomUUID() 方法,符合 RFC 4122 第 4 版型(隨機型)。
package com.cn.str;
import java.util.UUID;
public class CreateGUID {
public static final String generateGUID() {
UUID uuid = UUID.randomUUID();
return uuid.toString(); // 標準 36 字元格式:8-4-4-4-12
}
public static void main(String[] args) {
System.out.println(generateGUID());
// 輸出範例:a1b2c3d4-e5f6-7890-abcd-ef1234567890
}
}
String guid = UUID.randomUUID().toString().replace("-", "");
JDK 內建不支援,需使用第三方庫(如 uuid-creator)或自行實現 MD5/SHA-1 雜湊。
randomUUID() 內部使用 SecureRandom,高併發下可能成為瓶頸。ThreadLocalRandom 結合時間戳自行組裝,或使用 Snowflake 演算法。randomUUID() 在極高併發下理論上仍有極微機率碰撞,極度敏感場景可加入機器識別碼。