- 所有已实现的接口:
Serializable,Comparable<UUID>
这些全局标识符存在不同的变体。此类的方法用于操作 Leach-Salz 变体,尽管构造方法允许创建 UUID 的任何变体(如下所述)。
变体 2 (Leach-Salz) UUID 的布局如下:最重要的 long 由以下无符号字段组成:
0xFFFFFFFF00000000 time_low 0x00000000FFFF0000 time_mid 0x000000000000F000 version 0x0000000000000FFF time_hi最低有效长由以下无符号字段组成:
0xC000000000000000 variant 0x3FFF000000000000 clock_seq 0x0000FFFFFFFFFFFF node
variant 字段包含一个标识 UUID 布局的值。上述位布局仅对变体值为 2 的 UUID 有效,表示 Leach-Salz 变体。
version 字段包含一个描述此 UUID 类型的值。 UUID 有四种不同的基本类型:基于时间、DCE 安全、基于名称和随机生成的 UUID。这些类型的版本值分别为 1、2、3 和 4。
有关包括用于创建 UUID 的算法在内的更多信息,请参阅 RFC 4122:通用唯一标识符 (UUID) URN 命名空间 的第 4.2 节“用于创建基于时间的 UUID 的算法”。
- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述int与此 UUID 关联的时钟序列值。int将此 UUID 与指定的 UUID 进行比较。boolean将此对象与指定对象进行比较。static UUIDfromString(String name) 根据toString()方法中描述的字符串标准表示创建UUID。long返回此 UUID 的 128 位值的最低有效 64 位。long返回此 UUID 的 128 位值的最高有效 64 位。inthashCode()返回此UUID的哈希码。static UUIDnameUUIDFromBytes(byte[] name) 静态工厂根据指定的字节数组检索类型 3(基于名称)UUID。longnode()与此 UUID 关联的节点值。static UUID检索类型 4(伪随机生成)UUID 的静态工厂。long与此 UUID 关联的时间戳值。toString()返回表示此UUID的String对象。intvariant()与此UUID关联的变体编号。intversion()与此UUID关联的版本号。
-
构造方法详细信息
-
UUID
public UUID(long mostSigBits, long leastSigBits) 使用指定的数据构造一个新的UUID。mostSigBits用于UUID的最高 64 位,leastSigBits成为UUID的最低 64 位。- 参数:
mostSigBits-UUID的最高有效位leastSigBits-UUID的最低有效位
-
-
方法详情
-
randomUUID
检索类型 4(伪随机生成)UUID 的静态工厂。UUID是使用加密强度高的伪随机数生成器生成的。- 返回:
-
一个随机生成的
UUID
-
nameUUIDFromBytes
静态工厂根据指定的字节数组检索类型 3(基于名称)UUID。- 参数:
name- 用于构造UUID的字节数组- 返回:
-
从指定数组生成的
UUID
-
fromString
根据toString()方法中描述的字符串标准表示创建UUID。- 参数:
name- 指定UUID的字符串- 返回:
-
具有指定值的
UUID - 抛出:
IllegalArgumentException- 如果名称不符合toString()中描述的字符串表示形式
-
getLeastSignificantBits
public long getLeastSignificantBits()返回此 UUID 的 128 位值的最低有效 64 位。- 返回:
- 此 UUID 的 128 位值的最低有效 64 位
-
getMostSignificantBits
public long getMostSignificantBits()返回此 UUID 的 128 位值的最高有效 64 位。- 返回:
- 此 UUID 的 128 位值的最高 64 位
-
version
public int version()与此UUID关联的版本号。版本号描述了这个UUID是如何生成的。版本号含义如下:- 1 基于时间的 UUID
- 2 DCE安全UUID
- 3 基于名称的 UUID
- 4 随机生成的UUID
- 返回:
-
这个
UUID的版本号
-
variant
public int variant()与此UUID关联的变体编号。变体编号描述了UUID的布局。变体编号具有以下含义:- 0 保留用于 NCS 向后兼容
- 2 IETF RFC 4122 (Leach-Salz),由此类使用
- 6 保留,Microsoft Corporation 向后兼容
- 7 保留供将来定义
- 返回:
-
这个
UUID的变体号
-
timestamp
public long timestamp()与此 UUID 关联的时间戳值。60 位时间戳值由这个
UUID的 time_low、time_mid 和 time_hi 字段构成。从 UTC 时间 1582 年 10 月 15 日午夜开始,以 100 纳秒为单位测量生成的时间戳。时间戳值仅在版本类型为 1 的基于时间的 UUID 中有意义。如果此
UUID不是基于时间的 UUID,则此方法将抛出 UnsupportedOperationException。- 返回:
-
这个
UUID的时间戳。 - 抛出:
UnsupportedOperationException- 如果此 UUID 不是版本 1 UUID
-
clockSequence
public int clockSequence()与此 UUID 关联的时钟序列值。14 位时钟序列值是从这个 UUID 的时钟序列字段构造的。时钟序列字段用于保证基于时间的 UUID 中的时间唯一性。
clockSequence值仅在版本类型为 1 的基于时间的 UUID 中有意义。如果此 UUID 不是基于时间的 UUID,则此方法将抛出 UnsupportedOperationException。- 返回:
-
这个
UUID的时钟序列 - 抛出:
UnsupportedOperationException- 如果此 UUID 不是版本 1 UUID
-
node
public long node()与此 UUID 关联的节点值。48 位节点值是从这个 UUID 的节点字段构造的。该字段旨在保存生成此 UUID 的机器的 IEEE 802 地址,以保证空间唯一性。
节点值仅在版本类型为 1 的基于时间的 UUID 中有意义。如果此 UUID 不是基于时间的 UUID,则此方法将抛出 UnsupportedOperationException。
- 返回:
-
这个
UUID的节点值 - 抛出:
UnsupportedOperationException- 如果此 UUID 不是版本 1 UUID
-
toString
返回表示此UUID的String对象。UUID 字符串表示如此 BNF 所述:
UUID = <time_low> "-" <time_mid> "-" <time_high_and_version> "-" <variant_and_sequence> "-" <node> time_low = 4*<hexOctet> time_mid = 2*<hexOctet> time_high_and_version = 2*<hexOctet> variant_and_sequence = 2*<hexOctet> node = 6*<hexOctet> hexOctet = <hexDigit><hexDigit> hexDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" -
hashCode
public int hashCode()返回此UUID的哈希码。 -
equals
将此对象与指定对象进行比较。结果是true当且仅当参数不是null,是一个UUID对象,具有相同的变体,并且包含相同的值,逐位,作为这个UUID。 -
compareTo
将此 UUID 与指定的 UUID 进行比较。如果 UUID 不同的最重要字段对于第一个 UUID 更大,则两个 UUID 中的第一个大于第二个。
- 指定者:
compareTo在接口Comparable<UUID>中- 参数:
val-UUID要与此UUID进行比较- 返回:
-
-1、0 或 1,因为此
UUID小于、等于或大于val
-