如何在Java中创建唯一ID? [重复]

问题

这个问题在这里已有答案:

  • 在Java 6答案中创建GUID

我正在寻找在Java中创建一个唯一ID作为String的最佳方法。

任何指导表示赞赏,谢谢。

我应该提到我正在使用Java 5。


#1 热门回答(266 赞)

创建一个UUID

String uniqueID = UUID.randomUUID().toString();

#2 热门回答(40 赞)

如果你需要简短的,可读取的ID,并且每个JVM运行只需要它们是唯一的:

private static long idCounter = 0;

public static synchronized String createID()
{
    return String.valueOf(idCounter++);
}

**编辑:**评论中建议的替代方案 - 这依赖于引擎盖"魔力"的线程安全性,但更具可扩展性,同样安全:

private static AtomicLong idCounter = new AtomicLong();

public static String createID()
{
    return String.valueOf(idCounter.getAndIncrement());
}

#3 热门回答(22 赞)

java.util.UUID:toString()方法