当前位置: 首页 > news >正文

56.随机产生的id重复问题

2019独角兽企业重金招聘Python工程师标准>>> 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

相关文章:

  • MS SQL SERVER中的临时表
  • ExtJS 4.2 教程-03:使用Ext.define自定义类
  • 千古奇闻!明朝就已成功试爆两万吨原子弹?
  • C#和sqlserver中生成新的32位GUID
  • linux下安装oracle11g
  • 将文件加入到图形文件里;
  • Eclipse中已安装的插件如何卸载
  • Linux实现vnc管理
  • Redis的复制流程
  • 批处理 去掉变量空格
  • xshell及secureCRT保存日志
  • 微服务架构优缺点
  • SonicWall防火墙IM禁止Skype软件
  • CentOS 5 (64位)下lnmp平台搭建
  • 总结ldap碰到的问题
  • CentOS 7 修改主机名
  • laravel 用artisan创建自己的模板
  • Laravel核心解读--Facades
  • Solarized Scheme
  • TCP拥塞控制
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 算法-图和图算法
  • 无服务器化是企业 IT 架构的未来吗?
  • 因为阿里,他们成了“杭漂”
  • 由插件封装引出的一丢丢思考
  • 阿里云移动端播放器高级功能介绍
  • (145)光线追踪距离场柔和阴影
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (js)循环条件满足时终止循环
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net连接MySQL的方法
  • .net项目IIS、VS 附加进程调试
  • /etc/skel 目录作用
  • [ARC066F]Contest with Drinks Hard
  • [BZOJ2850]巧克力王国
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [C puzzle book] types
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C++]——带你学习类和对象
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [Java][Liferay] File system in liferay
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [jobdu]不用加减乘除做加法
  • [Power Query] 数据的拆分、提取与合并
  • [pthon2.7+django1.2+sae]博客评论的异步提交
  • [Qualcomm][GPIO]高通芯片引脚相关知识记录
  • [RISC-V]verilog
  • [RK3566-Android11] 关于 a2dpsink -蓝牙支持接收播放/无PIN码连接
  • [Unity] Unity3D研究院编辑器之独立Inspector属性
  • [Windows编程] C++中 bool,BOOL ,VARIANT_BOOL 的区别