【发布时间】:2021-04-16 20:15:28
【问题描述】:
我的任务是生成一个唯一的字符串,我想到的第一个想法是使用 Java 的 UUID 生成器具有额外的改进。所以我生成随机字符串的方式 看起来像这样
public static String generateRandomString() {
return "TEST" +
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSSSSS")
.format(LocalDateTime.now()) + UUID.randomUUID()
.toString().replace("-", "");
}
这种生成随机字符串的方法是否足以实现唯一性? 请注意,我需要在接下来的 20 年中每天生成 10 000 000 个。还, 这段代码将在不同的 JVM 上运行,并且可能在不同的服务器上运行。
【问题讨论】:
-
为什么不单独使用
UUID.randomUUID()? -
获取/保存有关字符串大约何时生成的信息。
-
顺便说一句,所有日期/时间格式都提供与使用 System.currentTimeMillis() 相同的唯一性