Java 生成 UUID

简介:

1.UUID 简介

     UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 
的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。

     UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。
在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的应用,
则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等

2.UUID 组成

    UUID保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字
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);

3.项目实战

    UUID 来作为数据库数据表主键是非常不错的选择,保证每次生成的UUID 是唯一的。

a.生成 UUID
需要用到java 自带 JDk;

复制代码
import java.util.UUID;
public static void main(String[] args) {
for(int i=0;i<10;i++){
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
System.out.println(uuid);
}
}
复制代码

 

b.生成指定数目的 UUID

复制代码
/** 
* 获得指定数目的UUID 
* @param number int 需要获得的UUID数量 
* @return String[] UUID数组 
*/ 
public static String[] getUUID(int number){ 
if(number < 1){ 
return null; 
} 
String[] retArray = new String[number]; 
for(int i=0;i<number;i++){ 
retArray[i] = getUUID(); 
} 
return retArray; 
}

/** 
* 获得一个UUID 
* @return String UUID 
*/ 
public static String getUUID(){ 
String uuid = UUID.randomUUID().toString(); 
//去掉“-”符号 
return uuid.replaceAll("-", "");
}
复制代码

 本文转自Orson博客园博客,原文链接:http://www.cnblogs.com/java-class/p/4727698.html,如需转载请自行联系原作者

相关文章
|
分布式计算 Java Linux
Java 生成 UUID
Java 生成 UUID
9912 0
|
5月前
|
安全 Java
UUID太长怎么办?快来试试NanoId(Java版本)
UUID太长怎么办?快来试试NanoId(Java版本)
229 5
|
6月前
|
存储 Java
35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
95 0
|
分布式计算 安全 算法
Java基础:UUID
作为开发人员大家对UUID应该都比较熟悉了,Java中也提供了相关的类和生成方法,供业务中使用。这里准备对UUID生成的过程做一次深入了解。
252 0
|
存储 安全 Java
Java类库StrringBuffer类、Math、SimpleDateFormat、Random随机数、大数字处理类和UUID 无重复数据(附带面试题)
1.StrringBuffer类 CharConsequnse接口,2.Math数学计算,3.Date日期处理类与SimpleDateFormat、4.Random随机数、5.大数字处理类、6.UUID 无重复数据
102 0
|
Java
Java的UUID简单生成方法
java的uuid简单生成
219 0
|
Java 数据库 数据安全/隐私保护
java中使用uuid(2)-处理数据库逻辑
当我们在建立数据库表的时候,需要有一定的规范,例如:每个表中都有一个自增的主键;密码不可以用明文,需要加密;有的字段不可为NULL;那么,有一个自我唯一标识的字段是必不可少的。但是毕竟不是所有业务都会有身份证标识,所以uuid是比较通用的一个技术。在数据库表中,需要生成一个唯一 ID 来标识字段的唯一性,所以就引入了uuid。答:现实中肯定有重名的人,不符合。可以看到,user_uuid是互相对应的,是一个唯一标识。如果以后要做一些业务的话,用uuid去做会比较好。2.那么,我们用身份证可以吗?
247 0
java中使用uuid(2)-处理数据库逻辑
|
算法 Java 数据库
如何在java中使用uuid(1)-随机uuid的获取
UUID是国际标准化组织ISO提出的一个概念。UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来。为了提高效率,常用的UUID可缩短至16位。UUID用来识别属性类型,在所有空间和时间上被视为唯一的标识。一般来说,可以保证这个值是真正唯一的任何地方产生的任意一个UUID都不会有相同的值。使用UUID的一个好处是可以为新的服务创建新的标识符。
412 0
如何在java中使用uuid(1)-随机uuid的获取
|
存储 Java
第35篇:Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
✏️ java.lang.Math 类提供了常见的数学计算功能 ✏️ Math 类被 final 修饰(不能被继承) ✏️ Math 类不能被实例化
257 0
第35篇:Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
Java UUID的生成,不重复
uuid的生成方式有很多,这里是一个尽可能的生成不重复的uuid.
532 0
下一篇
无影云桌面