全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。GUID 是微软对UUID这个标准的实现。

1.UUID 简介

UUID 含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准。

也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。

UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。

如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。

2.UUID 组成

UUID保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。

按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

UUID由以下几部分的组合:

(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

(2)时钟序列。

(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。

标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。

3.UUID的生成

UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID.

import java.util.UUID;

public class JavaDemo {

public static void main(String[] args) {

UUID uuid = UUID.randomUUID();

System.out.println(uuid);

}

}

在cmd模式下执行的结果如下面截图:


UUID的运用


JDK1.5

如果使用的JDK1.5的话,那么生成UUID变成了一件简单的事,因为JDK实现了UUID:

java.util.UUID,直接调用即可.

UUID uuid = UUID.randomUUID();

String s = UUID.randomUUID().toString();//用来生成数据库的主键id非常不错。

//下面就是实现为数据库获取一个唯一的主键id的代码

public class UUIDGenerator {

public UUIDGenerator() {

}

/**

* 获得一个UUID

* @return String UUID

*/

public static String getUUID(){

String s = UUID.randomUUID().toString();

//去掉“-”符号

return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24);

}

/**

* 获得指定数目的UUID

* @param number int 需要获得的UUID数量

* @return String[] UUID数组

*/

public static String[] getUUID(int number){

if(number < 1){

return null;

}

String[] ss = new String[number];

for(int i=0;i<number;i++){

ss[i] = getUUID();

}

return ss;

}

public static void main(String[] args){

String[] ss = getUUID(10);

for(int i=0;i<ss.length;i++){

System.out.println(ss[i]);

}

}

}

下方是代码实际运行结果截图


UUID的运用







南大盛联20年来一直致力于高端IT培训--打造高级软件人才实战培训专家,学生对我们的认可是我们一直前进的动力;项目团队全球招聘,特聘来自海外的老师进行任教,采用100%商业项目进行实战培训,线上线下同步进行。

课程全部紧随市场需求进行设计,并且动态进行调整;7天免费试听,0首付开始学习,学完后进行100%推荐就业,不满意工作岗位2次推荐。

选定一个平台,认识一群志同道合的朋友,你的未来人生路必定不一样。

目前已经开设下面这些培训项目

Java培训

安卓培训

JavaWeb培训

Linux培训

云服务器布置培训

HTML5培训

SEO培训

视频剪辑培训

UI培训

欢迎您们分享给自己愿意分享的朋友,大家一起来进步;相互转告,咨询,学习。

南大盛联培训理念:我懂,我也能让你懂。

相关文章