我知道UUID.randomUUID主要是好的:how good is java's UUID.randomUUID?
有没有人在使用UUID.randomUUID的Android上遇到问题。由于Android使用Dalvik VM。
我无法重现碰撞。但是,以下代码是可疑的(基于我的Production的报告),并且可能在两个不同进程(两个具有相同代码和不同包的应用程序,例如免费应用程序vs专业应用程序)上运行时导致冲突?
private static final String PREFIX = Long.toString(UUID.randomUUID().getLeastSignificantBits());
任何想法/经验都会有所帮助!
答案 0 :(得分:1)
我可以看到,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();
通过这种方式,您将减少碰撞的可能性。