- 所有已实现的接口:
-
Serializable
,Comparable<UUID>
存在不同变体的这些全局标识符。此类的方法用于操作Leach-Salz变体,尽管构造函数允许创建任何UUID的变体(如下所述)。
变体2(Leach-Salz)UUID的布局如下:最重要的长整数由以下无符号字段组成:
0xFFFFFFFF00000000 time_low 0x00000000FFFF0000 time_mid 0x000000000000F000 version 0x0000000000000FFF time_hi最不重要的长整数由以下无符号字段组成:
0xC000000000000000 variant 0x3FFF000000000000 clock_seq 0x0000FFFFFFFFFFFF node
变体字段包含一个值,用于标识UUID的布局。上述位布局仅适用于具有变体值为2的UUID,该值表示Leach-Salz变体。
版本字段保存描述此UUID类型的值。有四种不同的基本UUID类型:基于时间的、DCE安全、基于名称的和随机生成的UUID。这些类型的版本值分别为1、2、3和4。
有关更多信息,包括用于创建UUID的算法,请参阅 RFC 4122: 通用唯一标识符(UUID)URN命名空间,第4.2节“创建基于时间的UUID的算法”。
- 自 JDK 版本:
- 1.5
- 外部规范
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
与此UUID关联的时钟序列值。int
将此UUID与指定的UUID进行比较。boolean
将此对象与指定对象进行比较。static UUID
fromString
(String name) 根据toString()
方法中描述的字符串标准表示创建一个UUID
。long
返回此UUID的128位值的最不重要的64位。long
返回此UUID的128位值的最重要的64位。int
hashCode()
返回此UUID
的哈希码。static UUID
nameUUIDFromBytes
(byte[] name) 静态工厂,根据指定的字节数组检索类型3(基于名称)UUID
。long
node()
与此UUID关联的节点值。static UUID
静态工厂,检索类型4(伪随机生成)UUID。long
与此UUID关联的时间戳值。toString()
返回表示此UUID
的String
对象。int
variant()
与此UUID
关联的变体号码。int
version()
与此UUID
关联的版本号码。
-
Constructor Details
-
UUID
public UUID(long mostSigBits, long leastSigBits) 使用指定的数据构造一个新的UUID
。mostSigBits
用于UUID
的最重要的64位,leastSigBits
成为UUID
的最不重要的64位。- 参数:
-
mostSigBits
-UUID
的最重要位 -
leastSigBits
-UUID
的最不重要位
-
-
Method Details
-
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字段构造。生成的时间戳以自1582年10月15日午夜以来的100纳秒单位计量。时间戳值仅在基于时间的UUID(具有版本类型1)中有意义。如果此
UUID
不是基于时间的UUID,则此方法会抛出UnsupportedOperationException。- 返回:
-
此
UUID
的时间戳。 - 抛出:
-
UnsupportedOperationException
- 如果此UUID不是版本1的UUID
-
clockSequence
public int clockSequence()与此UUID关联的时钟序列值。14位时钟序列值由此UUID的时钟序列字段构造。时钟序列字段用于保证基于时间的UUID的时间唯一性。
时钟序列值仅在基于时间的UUID(具有版本类型1)中有意义。如果此UUID不是基于时间的UUID,则此方法会抛出UnsupportedOperationException。
- 返回:
-
此
UUID
的时钟序列 - 抛出:
-
UnsupportedOperationException
- 如果此UUID不是版本1的UUID
-
node
public long node()与此UUID关联的节点值。48位节点值由此UUID的节点字段构造。此字段旨在保存生成此UUID的机器的IEEE 802地址,以保证空间唯一性。
节点值仅在基于时间的UUID(具有版本类型1)中有意义。如果此UUID不是基于时间的UUID,则此方法会抛出UnsupportedOperationException。
- 返回:
-
此
UUID
的节点值 - 抛出:
-
UnsupportedOperationException
- 如果此UUID不是版本1的UUID
-
toString
返回表示此UUID
的String
对象。UUID字符串表示形式如下所述:
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大于第二个UUID。
- 指定者:
-
compareTo
在接口Comparable<UUID>
- 参数:
-
val
- 要将此UUID
与之比较的UUID
- 返回:
-
-1,0或1,根据此
UUID
小于、等于或大于val
-