温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

UUID分为几个版本

发布时间:2021-10-13 14:07:21 来源:亿速云 阅读:218 作者:iii 栏目:编程语言

本篇内容主要讲解“UUID分为几个版本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“UUID分为几个版本”吧!

通用唯一识别码(英语:Universally Unique  Identifier,缩写:UUID)是用于计算机体系中以识别信息数目的一个128位标识符,还有相关的术语:全局唯一标识符(GUID)。

根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性,这与其他大多数编号方案不同。重复UUID码概率接近零,可以忽略不计。

UUID是由一组32位数的16进制数字所构成,故UUID理论上的总数为16^32=2^128,约等于3.4 x  10^38。也就是说若每纳秒(ns)产生1万亿个UUID,要花100亿年才会将所有UUID用完。

UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为 8-4-4-4-12 的32个字符。

  • 示例:550e8400-e29b-41d4-a716-446655440000

UUID 格式:

在其规范的文本表示中,UUID 的 16 个 8 位字节表示为 32 个十六进制(基数16)数字,显示在由连字符分隔 '-'  的五个组中,"8-4-4-4-12" 总共 36 个字符(32 个字母数字字符和 4 个连字符)。例如:

123e4567-e89b-12d3-a456-426655440000 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

ps:上下对比看,a在十六进制中表示10

四位数字 M表示 UUID 版本,数字 N的一至三个最高有效位表示 UUID 变体。在例子中,M 是 1 而且 N 是 a(10xx),这意味着此  UUID 是“变体1”、“版本1”UUID;即基于时间的 DCE/RFC 4122 UUID。

UUID 版本:

对于“变体(variants)1”和“变体2”,标准中定义了五个版本(versions),并且在特定用例中每个版本可能比其他版本更合适。

版本由 M 字符串中指示。

版本1 - UUID 是根据时间和节点 ID(通常是MAC地址)生成;

版本2 - UUID是根据标识符(通常是组或用户ID)、时间和节点ID生成;

版本3、版本5 - 确定性UUID 通过散列(hashing)名字空间(namespace)标识符和名称生成;

版本4 - UUID 使用随机性或伪随机性生成。

Java中生成 UUID:

下面让我们介绍一下 Java UUID 类中可以用来生成 UUID 的方法:

1. randomUUID():

它使用加密强度高的伪随机数生成器生成v4伪随机UUID:

UUID uuid = UUID.randomUUID();

2. nameUUIDFromBytes():

我们可以使用 nameuidfrombytes ()从字节数组生成 UUID:

byte[] byteArr = {11, 23, 33};  UUID uuid = UUID.nameUUIDFromBytes(byteArr);

此方法生成 v3 UUID (基于名称的)。

3. fromString():

使用 fromString () ,我们可以从一个标准的字符串表示创建 UUID:

UUID uuid = UUID.fromString("533a4559-e55c-18b3-2456-555563322002");

对于作为参数传入的任何无效字符串,它将抛出 IllegalArgumentException。

比较两个 uuid:

Java UUID 实现了 Comparable 接口,因此,我们可以使用 compareTo ()方法来比较它们

UUID分为几个版本
UUID uuid1 = UUID.randomUUID(); UUID uuid2 = UUID.randomUUID();   int` `result = uuid1.compareTo(uuid2);

如我们所知,compareTo ()方法返回:

  • 1: 如果uuid1大于uuid2

  • 0:如果uuid1=uuid2

  • -1: 如果uuid1小于uuid2

我们也可以选择使用 equals ()方法进行比较。

到此,相信大家对“UUID分为几个版本”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI