java生成UUID通用唯一识别码

一、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 等等。

UUID的唯一缺陷在于生成的结果串会比较。 

 

二、UUID 组成

    UUID保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。
UUID组成部分:
(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
(2)时钟序列。
(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。


在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);

 

三、java使用UUID

java.util.UUID 类表示一个不变的通用唯一标识符(UUID)。以下是有关UUID的要点:

  • 一个UUID表示一个128位的值。

  • 它是用于创建随机文件名,在Web应用程序的会话ID,事务ID等。

  • 还有UUID四种不同的基本类型:基于时间,DCE安全性,基于名称,并随机生成的UUID。

 

以下是java.util.UUID类的声明:

public final class UUIDextends Objectimplements Serializable, Comparable<UUID>

 

UUID的使用:

//生成的id 752d231c-e5a3-871c-65d4-142dfa562cb4中间含有横杠,用来生成数据库的主键id是很实用的。
UUID uuid  =  UUID.randomUUID();
String id=uuid.toString();
id=id.replace("-", "");//替换掉中间的那个横杠  

 

方法摘要
 intclockSequence()
          与此 UUID 相关联的时钟序列值。
 intcompareTo(UUID val)
          将此 UUID 与指定的 UUID 比较。
 booleanequals(Object obj)
          将此对象与指定对象比较。
static UUIDfromString(String name)
          根据 toString() 方法中描述的字符串标准表示形式创建 UUID
 longgetLeastSignificantBits()
          返回此 UUID 的 128 位值中的最低有效 64 位。
 longgetMostSignificantBits()
          返回此 UUID 的 128 位值中的最高有效 64 位。
 inthashCode()
          返回此 UUID 的哈希码。
static UUIDnameUUIDFromBytes(byte[] name)
          根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。
 longnode()
          与此 UUID 相关的节点值。
static UUIDrandomUUID()
          获取类型 4(伪随机生成的)UUID 的静态工厂。
 longtimestamp()
          与此 UUID 相关联的时间戳值。
 StringtoString()
          返回表示此 UUIDString 对象。
 intvariant()
          与此 UUID 相关联的变体号。
 intversion()
          与此 UUID 相关联的版本号。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 项目部署,Android发布项目到JCenter

JCenter是什么大家应该都用过各种各样的Github上的第三方开源组件。类似这种效果的compile wang.yuchao.demoforjcenterlibrary:DemoForJCenterLibraryModel:1.2.5我们会比较好奇Android Studio 是从哪里得到这个类库的&#xff1f;Android Studio是从build.gradle里面定义的Ma…

java流与文件——对象流和序列化

【0】README 0.1&#xff09; 本文描述转自 core java volume 2&#xff0c; 旨在理解 java流与文件——对象流和序列化 的相关知识&#xff1b; 0.2&#xff09; for source code , please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdva…

maven 版本号插件_测试Maven版本插件自动递增版本号

maven 版本号插件抽象 Maven版本插件是一个非常强大的工具&#xff0c;我在很大程度上依赖于它来协调软件版本。 通常&#xff0c;软件发行版本号遵循简单的1.0.0.0-SNAPSHOT格式。 但是最近我需要在版本号中添加一个限定符&#xff0c;例如1.0-beta-SNAPSHOT或1.0.0-fix-bug-d…

java中Date

在类 Date 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中&#xff0c;将使用下面的表示形式&#xff1a;年份 y 由整数 y - 1900 表示。月份由从 0 至 11 的整数表示&#xff1b;0 是一月、1 是二月等等&#xff1b;因此 11 是十二月。日期&#xff08;一月中的某…

如何配置android的adb环境变量,如何配置adb环境变量?win7配置adb环境变量的方法...

本文教程小编分享就是win7系统配置adb环境变量的方法&#xff0c; windows7系统 电脑安装adb工具时&#xff0c;提示“adb不是内部或外部命令”这时候我们需要重新配置adb环境变量&#xff0c;那么win7系统怎么配置adb环境变量&#xff1f;网上介绍配置adb环境变量的方法比较少…

jep290涉及jdk版本_JDK 14 / JEP 305模式匹配“ Smart Casts”实例

jep290涉及jdk版本我通常将Java代码中instanceof运算符的存在视为“ 红色标志 ”&#xff0c;这意味着在某些情况下使用instanceof不一定是错误的&#xff0c;但是使用它有时表示可以通过更干净的方式解决设计问题&#xff0c;如所述本文结尾处引用的一些资源中的内容&#xff…

java中Date与DateFormat的格式输出

一、DateFormat java.text.DateFormat 使用 getDateInstance 来获取该国家/地区的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获取该国家/地区的时间格式。使用 getDateTimeInstance 可获取日期和时间格式。可以将不同选项传入这些工厂方法&…

二叉堆的操作总结(insert+deleteMin+increaseKey+decreaseKey+percolateDown+percolateUp)

【0】README 本文idea 均为原创&#xff0c; for source code, please visit https://github.com/pacosonTang/dataStructure-algorithmAnalysis/tree/master/chapter6/p140_binaryheap_conclusion 【1】insert操作 // Attention, the index of the heap starts from 1 void …

aws生态系统集成商_通过通用数据访问扩展AWS生态系统

aws生态系统集成商Amazon Web Services&#xff08;AWS&#xff09;可帮助组织托管和管理其数据流程&#xff0c;例如构建数据可视化和执行ETL任务。 在CData&#xff0c;我们可以轻松地将AWS Services与异构业务应用程序和分布式数据存储连接起来&#xff0c;以最终帮助企业对…

HTML.parser和正则解析,正则表达式+HTMLParser使用详.ppt

getText:/body getText: getText:/htmlgetText:除了前面3.2中输出的几个Tag&#xff0c;其余的Tag都在这里了。 3.4 XorFilter 把前面的AndFilter换成NotFilter测试代码&#xff1a; NodeFilter filterID new HasAttributeFilter( "id" );NodeFilter filterChild n…

FileDescriptor的作用

一、FileDescriptor 文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄&#xff0c;该结构表示开放文件、开放套接字或者字节的另一个源或接收者。文件描述符的主要实际用途是创建一个包含该结构的 FileInputStream 或 FileOutputStream。 二、静态标准文件描述…

java流与文件——内存映射文件

【0】README 0.1&#xff09; 本文描述转自 core java volume 2&#xff0c; 旨在理解 java流与文件——内存映射文件 的相关知识&#xff1b; 0.2&#xff09;内存映射文件的目的是&#xff1a; 提高访问速度&#xff0c; 缓冲区Buffer&#xff1b; 0.3&#xff09; 本文干…

java 函数式编程 示例_功能Java示例 第8部分–更多纯函数

java 函数式编程 示例这是第8部分&#xff0c;该系列的最后一部分称为“示例功能Java”。 我在本系列的每个部分中开发的示例是某种“提要处理程序”&#xff0c;用于处理文档。 在上一期文章中&#xff0c;我们已经使用Vavr库看到了一些模式匹配&#xff0c;并且还将故障也视…

html加css作品,我的影视作品,如何在博客园发布带有CSS样式的HTML

总结一下&#xff0c;我做过的视频&#xff1a;(顺便试试在博客园如何发HTML网页)发布网页总结&#xff1a;HTML可以正常发送&#xff0c;但最好将你要发布的html文件放在一个带有ID的div中&#xff0c;这样方便后期添加样式时通过ID添加&#xff0c;不会影响到网页中的其他布局…

FileInputStream

java.ioClass FileInputStream java.lang.Object java.io.InputStream java.io.FileInputStream 所有已实现的接口: Closeable public class FileInputStream extends InputStream FileInputStream 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。 Fil…

android console命令,我们可以通过两种方式进入Android的console: 1. 直接执行命令emulator -shell; 2....

Don’t use /usr 这样子编译出来的busybox才不会安装到你主机的/usr目录下。一定要选上。4 执行make编译源码. 如果编译过程中产生无法找到头文件的错误, 可指定交叉编译器用到的头文件所在路径. 如 $make -I./home/jo/tool/arm-2008q3/arm-none-linux-gnueabi/lib…

selenium 示例_Selenium测试中所需的功能和示例

selenium 示例所需功能是用于声明一组基本要求&#xff08;例如浏览器&#xff0c;操作系统&#xff0c;浏览器版本等的组合&#xff09;的类&#xff0c;以对Web应用程序执行自动跨浏览器测试。 当我们尝试通过Selenium自动化测试来自动化测试脚本时&#xff0c;我们需要考虑…

java流与文件——正则表达式

【0】README 0.1&#xff09; 本文描述转自 core java volume 2&#xff0c; 旨在理解 java流与文件——正则表达式 的相关知识&#xff1b; 0.2&#xff09; there are my original source code below, and for them , please visit https://github.com/pacosonTang/core-ja…

pandoc讲html转换为pdf,mac下利用Pandoc、LaTeX 转换markdown成html,pdf

环境所使用的插件有pandoc,tlmgr,fc-listcssbrew install pandoc由于mac ox 系统生成pdf 须要找到对应的编码集 全部还须要去下载LaTeX&#xff0c;进行安装html5使用tlmgr工具安装全部要的包先进行更新&#xff0c;若是提示所须要的字体没有找到安装gitsudo tlmgr update --se…

java程序连接kafka_Java的Kafka:构建安全,可扩展的消息传递应用程序

java程序连接kafka使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 当今的用户希望可以通过其计算机&#xff0c;手机&#xff0c;平板电脑或任何其他设备访问您的应用…