如果我正在使用Long uuid = UUID.randomUUID().getMostSignificantBits()发生冲突可的可能性。它会切掉最低有效位,所以有可能发生冲突可,对吗?
根据文档,静态方法UUID.randomUUID()生成类型4 UUID。
UUID.randomUUID()
这意味着六位用于某种类型信息,其余的122位是随机分配的。
分布了六个非随机位,其中UUID的最高有效一半分配了四个,而最低有效一半分配了两个。因此,你UUID的最重要的一半包含60位随机性,这意味着你平均需要生成2 ^ 30个UUID才能发生冲突(相比之下,完整UUID则为2 ^ 61)。
所以我要说你很安全。但是请注意,正如Carl Seleborg提到的,对于其他类型的UUID绝对不是这样。
顺便说一句,通过使用UUID的最低有效部分(或仅使用SecureRandom生成随机长整型),你的状况会稍好一些。