一,什么是UUID

UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID)。

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。

UUID由以下几部分的组合:
(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
(2)时钟序列。
(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。

UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32=2^128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。
UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符。示例:
  • 550e8400-e29b-41d4-a716-446655440000
UUID亦可刻意重复以表示同类。例如说微软的COM中,所有组件皆必须实现出IUnknown接口,方法是产生一个代表IUnknown的UUID。无论是程序试图访问组件中的IUnknown接口,或是实现IUnknown接口的组件,只要IUnknown一被使用,皆会被参考至同一个ID:00000000-0000-0000-C000-000000000046。

二,代码:

public class testId {public static void main(String[] args) {String[] id=new String[10002];for (int i = 0; i < 10000; i++) {//截取最后一部分id[i]=UUID.randomUUID().toString().substring(24);}System.out.println(id.length);System.out.println("第一个:"+id[0]);for (int j = 0; j < 10000; j++) {for (int i = 0; i < 10000&&i!=j; i++) {if(id[j].equals(id[i]))System.out.println(id[j]);}}System.out.println("最后一个:"+id[9999]);}
}

结果:生成一万个:

用java生成永远唯一的id相关推荐

  1. java生成订单唯一编号_java唯一订单号生成

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class IdWorker { protected static fi ...

  2. java生成永远不重复的随机数_java生成不重复随机数的方法

    java生成不重复随机数的方法 发布时间:2020-07-01 11:00:00 来源:亿速云 阅读:225 作者:Leah java怎么实现生成不重复随机数 ?针对这个问题,这篇文章详细介绍了相对应 ...

  3. 一个生成全局唯一Sequence ID的高并发工厂类 (Java)

    为什么80%的码农都做不了架构师?>>>    Sequence是数据库系统按照一定规则自动增加的数字序列.这个序列一般作为代理主键(因为不会重复),没有其他任何意义. Sequen ...

  4. Hive中生成随机唯一标识ID的方法

    2019独角兽企业重金招聘Python工程师标准>>> HIVE中处理的数据往往比较多,在处理数据的时候希望给处理得到的数据一个ID标识,这时候可以用到UUID. UUID的算法的核 ...

  5. java生成8位的uuid_分布式系统全局唯一ID简介、特点、生成

    一.什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识. 如在金融.电商.支付.等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息, ...

  6. 面试官:高并发下,如何保证分布式唯一全局 ID 生成?

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结. 这篇文章就是给各位看官提供一个生成分布式唯一 ...

  7. java产生全局唯一的int类型_全局唯一ID设计

    在分布式系统中,经常需要使用全局唯一ID查找对应的数据.产生这种ID需要保证系统全局唯一,而且要高性能以及占用相对较少的空间. 全局唯一ID在数据库中一般会被设成主键,这样为了保证数据插入时索引的快速 ...

  8. 集群高并发情况下如何保证分布式唯一全局ID生成

    作者:轻狂书生 blog.csdn.net/LookForDream_/article/details/109355335 前言 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问 ...

  9. 【283期】面试官问:高并发场景下,如何保证全局唯一分布式 ID 生成?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... 前言 系统 ...

最新文章

  1. Java 集合——List集合
  2. Thread系列——Thread.Sleep(0)
  3. 反对人工智能的九条意见是什么?
  4. 【BZOJ1086】[SCOI2005]王室联邦 树分块
  5. Qt5布局管理(2)
  6. c strlen C++ strlen
  7. C++ leetcode 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
  8. php drive mssql,PHP 连接 MSSQL 2005/2008 以UTF8存取 并让ADODB支持的安装设置
  9. 重装php后网站无法,1、解决重装php后变量在下一个页面无法取到的问题:
  10. Nature 机器智能综述:AI如何自动生成游戏
  11. 软件测试管理工具禅道开源版下载安装
  12. vue-cli 使用Mint-UI
  13. Matlab中使用varargin来实现参数可变的函数
  14. 【得物技术】AB实验设计实现与分流算法
  15. db2 windows linux,Migrate DB2 v9 on windows to DB2 v10.5 on linux
  16. Lenovo Y50-70 1080p Hackintosh Catalina
  17. 小甲鱼第45课 魔术方法 简单定制
  18. 无聊猿宇宙之风进军国内市场会卷起巨浪吗?
  19. Win11系统组策略编辑器打不开解决方法
  20. 阿里云服务器托管-云服务器托管介绍

热门文章

  1. 判断xarray中小于0的位置坐标
  2. 安徽外国语学院计算机毕业大补考,学生缓考、补考及重修最终成绩计算办法
  3. bluetooth射频已关闭请打开bluetooth射频_投资笔记:5G之射频研究
  4. iOS【UI之QQ聊天布局_键盘通知实现自动弹出隐藏_自动回复】
  5. Linux内核中喂狗,m3352linux内核中看门狗喂狗和应用层喂狗方法
  6. Mac 终端提示You have not agreed to the Xcode license agreements
  7. 图片嵌入隐藏-大容量的信息隐藏算法
  8. anaconda3 mysql_Win10+Anaconda3+Eclipse+Django+MySQL 配置Python的Web开发环境
  9. 51信用卡的面试问题
  10. Golang学习(二十四)家庭记账项目