博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
56.随机产生的id重复问题
阅读量:6510 次
发布时间:2019-06-24

本文共 1245 字,大约阅读时间需要 4 分钟。

hot3.png

    1.产生的id不会重复的原因

      (1)uuid每次产生重复的概率    10亿分之一

      (2)  两个uuid拼接 这样重复的概率为 100亿分之一

     (3) 纳秒级别时间戳 1纳秒=0.00000 0001 

java中System.nanoTime()返回的是纳秒,nanoTime而返回的可能是任意时间,甚至可能是负数……按照API的说明,nanoTime主要的用途是衡量一个时间段,比如说一段代码执行所 用的时间,获取数据库连接所用的时间,网络访问所用的时间等。另外,nanoTime提供了纳秒级别的精度,但实际上获得的值可能没有精确到纳秒。

           ns(nanosecond):纳秒, 。一秒的10亿分之一,即等于10的负9次方秒。

           常用作 读写速度的单位,其前面数字越小则表示速度越快。  

           1纳秒=1000    

           1纳秒 =0.001    

          1纳秒=0.000001 

     1纳秒=0.00000 0001

2.效果

012311_oXEI_3015807.png

3.代码

package timeStamp;

import java.text.SimpleDateFormat;

import java.util.Date;
import java.util.UUID;

public class TestTimeStamp {

    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            StringBuffer sb = new StringBuffer();//
            String random1 = UUID.randomUUID().toString().replaceAll("-", "");// uuid产生的随机数字 重复的机会10亿分之一
            String random2 = UUID.randomUUID().toString().replaceAll("-", "");// uuid产生的随机数字
            // 获取当前时间戳
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            String time = sdf.format(date);
            // 纳秒时间戳 怕出现负号
            String nanotime = String.valueOf(System.nanoTime()).replaceAll("-", "1");
            sb.append(random1);
            sb.append(random2);
            sb.append(time);
            sb.append(nanotime);
            System.out.println(sb.toString());
            System.out.println();
        }

    }

}

 

转载于:https://my.oschina.net/springMVCAndspring/blog/1579632

你可能感兴趣的文章
软考 2018年下半年卷 错题知识点记录
查看>>
仿网易邮箱5.0版UI
查看>>
winsow xp不能安装软件, 提示"中断" 是因为设置了 软件限制策略
查看>>
as3调用外部应用程序 as调用外部exe文件as3调用bat文件 未测试
查看>>
jQuery清空标签内容--防止内存泄露
查看>>
关于 HandlerMethodArgumentResolver 类 以及 WebArgumentResolver 类 自定义解析参数
查看>>
30个php操作redis常用方法代码例子
查看>>
这样就算会了PHP么?-10
查看>>
css基础之 联网使用bootstrap
查看>>
Struts2中使用Session的两种方法
查看>>
【索引】Oracle之不可见索引和虚拟索引的比对
查看>>
忠告初学者学习Linux系统的8点建议
查看>>
下载历史版本App
查看>>
在Ubuntu中部署并测试HyperLedger Fabric 0.6
查看>>
一题关于PHP的CTF
查看>>
phpmyadmin 免登陆
查看>>
【Linux相关配置】Wine1.12中文完美配置
查看>>
[uart]理解线路规程的作用
查看>>
RecyclerView的使用(2)之多Item布局的载入
查看>>
Go1.5 改进摘要
查看>>