你放心吧,
用到了 MAC、时间戳、随机数等因素生成
用到了 MAC、时间戳、随机数等因素生成
解决方案 »
- JAVA中焦点在JTextField中按下键盘TAB键却监听不到
- apache.commons.io.FileUtils怎么获得目录及所有子目录列表
- GridBagLayout布局管理器该怎么用?
- 单一模式中的静态方法
- java如何对一个字符串生成唯一的编码
- 请问如何循环读出xml中子节点的名称及内容(内祥)
- java如何做出jlistview控件的效果??
- 如何解决客户端发送数据后连接自动断开的问题
- 新手请教:有关网络文件传输、数据库查询的问题!
- 怎样将小写金额转换成大写金额?比如将100000.00转换成十万元整,将108000.00转换成十万零八千元整。
- smslib 读不到端口问题
- 使用iteraor产生警告
机器标识:Java下就是JVM标识,故意情况下可重复;
纳秒级当前时间:故意情况下可重复;
随机数:小概率重复;
自增序列数(或时钟序列):循环溢出时重复;总的来说,你需要大量机器运行海量JVM同时生成UUID,才能有很低概率得到重复的UUID。以上是我凭理解瞎掰,也可以看看稍微专业点的说法:http://zh.wikipedia.org/wiki/UUID与被陨石击中的机率比较的话,已知一个人每年被陨石击中的机率估计为170亿分之1[1],也就是说机率大约是0.00000000006 (6 x 10-11),等同于在一年内建立数十兆笔UUID并发生一次重复。换句话说,每秒产生10亿笔UUID,100年后只产生一次重复的机率是50%。如果地球上每个人都各有6亿笔UUID,发生一次重复的机率是50%。
StringUtils.replace(UUID.randomUUID().toString(), "-", ""),统计
SELECT t.id , COUNT(T.id) c FROM RV_PAYMENTNOTE T GROUP BY T.id having count(t.id) > 1;
1 57ba98c0e34342bfa34d0e88e4aed536 3
2 39bc3b65e12641e49612bba4a9b38a04 2明细
select t.id ,t.create_date from RV_PAYMENTNOTE t
where t.id in('57ba98c0e34342bfa34d0e88e4aed536', '39bc3b65e12641e49612bba4a9b38a04');
1 39bc3b65e12641e49612bba4a9b38a04 2012-01-11 14:53:07
2 39bc3b65e12641e49612bba4a9b38a04 2012-01-11 14:57:01
3 57ba98c0e34342bfa34d0e88e4aed536 2011-10-25 18:14:30
4 57ba98c0e34342bfa34d0e88e4aed536 2011-11-01 12:59:44
5 57ba98c0e34342bfa34d0e88e4aed536 2011-11-01 12:37:55
主要是在虚拟环境中MAC地址有可能重复,这个问题不好解决。在部署时都需要检查一遍。或应用程序把所有机器的MAC地址汇总到一个地方,发生有重复的时间就报告给系统管理员,让他们人为地修改MAC地址。