`
popwang
  • 浏览: 59513 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
Java的UUID(全球唯一编号)
2006年09月27日 星期三 17:18

GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。 
 
    UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID
import java.util.UUID;
public class Test {
 public static void main(String[] args) {
  UUID uuid = UUID.randomUUID(); 
  System.out.println (uuid);
}
}
编译运行输出:
07ca3dec-b674-41d0-af9e-9c37583b08bb

UUID的Java参考文档请参照:
http://www.cuku.net/api/java/util/UUID.html

另外一个说明:
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API。UUID按照开放软件基金会 (OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与 时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网 卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的 GUID(Globals Unique Identifiers)。

调查:
有 4 种不同的基本 UUID 类型:基于时间的 UUID、DCE 安全 UUID、基于名称的 UUID 和随机生成的 UUID。这四种类型的UUID产生方法请调查。同时,是否可以控制产生的UUID长度在一定范围内。

 

 

标识符(UUID)是开放软件基金会(OSF)制定的标准,其意图在于分布式软件系统中生成唯一的标识,而这个标识无需统一的协调中心来进行分 配. 任何人都可以创建UUID来标识某样事物,并且有足够的信心来保证所生成的标识是唯一的,也就是说别人不会使用到你所生成的标识符. 关于UUID这个标准使用最普遍的是微软对其的实现-GUID(Globals Unique Identifiers).
UUID是由一个十六位的数字组成,表现出来的形式例如
550E8400-E29B-11D4-A716-446655440000
那么我们怎么来生成这个唯一的标识呢?
为此J2SE5.0新增加了一个类java.util.UUID,借助它可以生成唯一的标识符.请看下面一段代码
public static void main(String[] args) {
  UUID uuid = UUID.randomUUID();
  System.out .println(uuid.toString());
}
执行一下这段代码,结果有如 702b0031-d99c-477b-97fa-6cfd158901d6 . 每次执行的结果都不一样.
UUID跟随机数有什么区别呢?
前面提到了,UUID适合分布式的软件系统中. UUID用于保证每个节点所生成的标识都不会重复(或者说重复的概念极低,至于有多低我也不知道怎么形容),而随机数顶多保证在同一个节点(进程)中能保 证生成的数字唯一,而多个进行同时生成的随机数相同的概率非常高,因此随机数并不适用于分布式系统中.
现实中那些东西用到了UUID?
最常见的就是微软的ActiveX对象,COM对象了.例如在web页面中使用的Flash播放插件就会出现这样的代码 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 而clsid后面这个数字串就是微软开发工具生成的用于Flash播放器这个对象的唯一标识,它的格式完全与我们前面自生成的标识一致.
参考资料
分享到:
评论

相关推荐

    uuid.rar_C获得UUID_UUID C_c生成uuid_c语言生成uuid_uuid

    标题“uuid.rar_C获得UUID_UUID C_c生成uuid_c语言生成uuid_uuid”表明这是一个关于使用C语言实现UUID生成的资源包。这个压缩包可能包含了一个C语言编写的程序或库,可以用来在Windows平台上(通过VC6编译器)生成...

    浅谈java获取UUID与UUID的校验

    java 获取 UUID 与 UUID 校验详解 Java 获取 UUID 是一个非常常见的操作,UUID(Universally Unique Identifier,全球唯一标识符)是一种软件建筑中用于标识信息的标识符。UUID 的主要用途是为了在分布式系统中生成...

    PB生成UUID.zip

    标题中的"PB生成UUID"指的是在编程中使用Protocol Buffers(简称PB)生成Universally Unique Identifier(UUID)。UUID是一个128位的数字,通常表示为32个十六进制数字,用于唯一标识网络中的对象。它在分布式系统、...

    ThinkPad System UUID1.82

    【ThinkPad System UUID1.82】是一款专为联想ThinkPad笔记本电脑设计的系统UUID添加工具,主要用于在制作U盘启动盘时解决特定问题。UUID(Universally Unique Identifier)是全球唯一的标识符,用于区分不同的计算机...

    jdk与javauuidgenerator生成uuid

    UUID,全称Universally Unique Identifier,是用于唯一标识信息的128位数字。在Java中,UUID提供了标准的方法来生成全局唯一的标识符。UUID主要由三部分组成:时间戳、随机数和节点ID,这确保了其在全球范围内的唯一...

    UUID封装直接调用直接下载用

    UUID,全称Universally Unique Identifier,是全局唯一标识符的缩写,是一种软件构造标准,用于在分布式系统中唯一标识信息。UUID的主要目的是解决网络系统中的唯一性问题,确保在网络中的任何地方都不会出现重复的...

    Javascript生成UUID 三种方法

    ### JavaScript生成UUID的三种方法详解 #### 一、前言 在软件开发中,经常会遇到需要为特定的数据或对象分配唯一标识符的情况。UUID(通用唯一标识符)就是一种常用的解决方案,它能够确保生成的ID在空间和时间上...

    Math.uuid.js

    《JavaScript中的UUID生成:深入理解Math.uuid.js》 在JavaScript编程中,UUID(Universally Unique Identifier)是一种广泛应用的全局唯一标识符,它主要用于创建对象的唯一ID,尤其是在分布式环境中。Math.uuid....

    uuid.rar_uuid

    可能包含了如`uuid_generate()`用于生成新的UUID,`uuid_parse()`解析字符串形式的UUID,以及`uuid_compare()`比较两个UUID是否相同等函数。这些函数的实现通常基于RFC 4122,这是一个定义UUID生成和格式的标准。 ...

    16bit UUID一览表

    16bit UUID一览表 16位UUID是一种通用唯一标识符,用于标识蓝牙设备中的服务、特征和特征描述符。它是一个16位的二进制数字,通常用十六进制表示法表示。16位UUID是一种广泛使用的标识符,在蓝牙技术中扮演着重要...

    javascript生成uuid的js库文件

    UUID(Universally Unique Identifier)是用于唯一标识信息的一种标准格式,通常由32个十六进制数字组成,分为五组,用短横线分隔。在JavaScript中,生成UUID的需求时常出现,例如在生成临时ID、数据库记录的主键...

    javaScript动态随即生成UUID

    在IT领域,尤其是在Web开发中,唯一标识符(UUID)是一种极为重要的技术,它用于确保在分布式网络环境中数据对象的唯一性。JavaScript作为一种广泛应用于Web前端与后端开发的脚本语言,提供了多种方法来生成UUID,...

    通过NDK获得UUID

    标题"通过NDK获得UUID"和描述涉及到利用Native Development Kit (NDK) 在Android系统底层获取UUID,以及通过Java层获取Android的唯一标识码。NDK允许开发者用C/C++编写部分应用,从而提高性能,特别是对于计算密集型...

    uuid-1.6.2.tar.gz

    UUID,全称Universally Unique Identifier,是用于唯一标识网络中的对象的一种标识符。在数据库系统中,UUID常常被用来创建全局唯一的序列号,避免不同系统间的冲突。在PostgreSQL数据库中,uuid-ossp扩展提供了生成...

    Android蓝牙设备之间通过UUID通信

    UUID(Universally Unique Identifier)在蓝牙通信中扮演着关键角色,它是一种全球唯一的标识符,用于区分不同的蓝牙服务。本教程将深入探讨如何在Android设备之间利用UUID进行蓝牙通信。 首先,我们要了解Android...

    返回Long型UUid

    在Java编程中,UUID(Universally Unique Identifier)是一种标准的128位的唯一标识符,通常用于生成不可预测的全局唯一ID。然而,标准的UUID由32个16进制数字组成,形式上类似于“123e4567-e89b-12d3-a456-...

    fast-uuid用于快速高效地解析和编写UUID的Java库

    UUID,全称Universally Unique Identifier,是一种为分布式系统生成全局唯一标识符的机制。在Java中,虽然标准库提供有`java.util.UUID`类来生成和处理UUID,但其性能并非最优,特别是在大规模生成和解析时。为了...

    Android生成唯一标识符UUID(完全替代IMEI)

    在这种背景下,使用UUID作为IMEI的替代方案变得越来越常见。本文将深入探讨如何在Android中生成UUID以及其作为唯一标识符的优势。 UUID(Universally Unique Identifier)是一种全球唯一的标识符,它是由128位数字...

    PHP实现生成统一唯一标识符UUID

    在IT行业中,UUID(Universally Unique Identifier)是一种用于标识信息的标准,它确保了全局的唯一性,不依赖网络连接或中央注册机构。在PHP中,生成UUID常常用于创建唯一的记录标识,比如数据库中的主键或者分布式...

    uuid.zip_uuid

    UUID,全称Universally Unique Identifier,是用于唯一标识信息的128位数字。在IT领域,UUID扮演着至关重要的角色,特别是在分布式系统和数据库设计中。UUID生成器是用来创建这些独特标识的工具,它确保生成的每个ID...

Global site tag (gtag.js) - Google Analytics