我了解UUID.randomUUID主要是很好的:how good is java's UUID.randomUUID?
有没有人在Android上遇到过UUID.randomUUID问题。由于Android使用Dalvik VM。
我无法重现碰撞。但是,以下代码可疑(基于我的生产报告),并且在两个不同的进程(两个具有相同代码和不同软件包的应用程序,例如免费应用程序与专业应用程序)上运行时可能会导致冲突?
private static final String PREFIX = Long.toString(UUID.randomUUID().getLeastSignificantBits());
任何想法/经验都将有所帮助!
最佳答案
如我所见,http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html最低有效数字包括三个字段:
0xC000000000000000 variant
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF node
通过不使用所有UUID,您将增加发生碰撞的机会。如何将其全部处理为:
private static final String PREFIX = UUID.randomUUID().toString();
这样,您将减少碰撞的机会。