- java.lang.Object
-
- java.util.UUID
-
- 实现的所有接口
-
Serializable
,Comparable<UUID>
public final class UUID extends Object implements Serializable, Comparable<UUID>
表示不可变通用唯一标识符(UUID)的类。 UUID表示128位值。存在这些全局标识符的不同变体。 该类的方法用于操纵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
variant字段包含一个标识
UUID
布局的UUID
。 上述位布局仅对变量值为2的UUID
有效,表示Leach-Salz变量。版本字段包含一个描述此
UUID
类型的UUID
。 UUID有四种不同的基本类型:基于时间,DCE安全性,基于名称和随机生成的UUID。 这些类型的版本值分别为1,2,3和4。有关包括用于创建
UUID
s的算法的更多信息,请参见第45节“创建基于时间的UUID的算法”的第RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace节。- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 UUID(long mostSigBits, long leastSigBits)
使用指定的数据构造一个新的UUID
。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 int
clockSequence()
与此UUID关联的时钟序列值。int
compareTo(UUID val)
将此UUID与指定的UUID进行比较。boolean
equals(Object obj)
将此对象与指定的对象进行比较。static UUID
fromString(String name)
创建UUID
如在所描述的字符串标准表示toString()
方法。long
getLeastSignificantBits()
返回此UUID的128位值的最低有效64位。long
getMostSignificantBits()
返回此UUID的128位值的最高64位。int
hashCode()
返回此UUID
的哈希码。static UUID
nameUUIDFromBytes(byte[] name)
静态工厂根据指定的字节数组检索类型3(基于名称)UUID
。long
node()
与此UUID关联的节点值。static UUID
randomUUID()
静态工厂检索类型4(伪随机生成)的UUID。long
timestamp()
与此UUID关联的时间戳值。String
toString()
返回表示此UUID
的String
对象。int
variant()
与此UUID
相关的变量编号。int
version()
与此UUID
相关联的版本号。
-
-
-
方法详细信息
-
randomUUID
public static UUID randomUUID()
静态工厂检索类型4(伪随机生成)的UUID。UUID
是使用加密强伪随机数生成器生成的。- 结果
-
随机生成
UUID
-
nameUUIDFromBytes
public static UUID nameUUIDFromBytes(byte[] name)
静态工厂根据指定的字节数组检索类型3(基于名称)UUID
。- 参数
-
name
- 用于构造UUID
字节数组 - 结果
-
从指定的数组生成的
UUID
-
fromString
public static UUID fromString(String name)
创建UUID
如在所描述的字符串标准表示toString()
方法。- 参数
-
name
- 指定UUID
字符串 - 结果
-
A
UUID
具有指定值 - 异常
-
IllegalArgumentException
- 如果name不符合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
的变UUID
-
timestamp
public long timestamp()
与此UUID关联的时间戳值。60位时间戳值由此UUID的time_low,time_mid和time_hi字段
UUID
。 从UTC时间1582年10月15日午夜开始,生成的时间戳以100纳秒为单位进行测量。时间戳值仅在基于时间的UUID中有意义,该UUID具有版本类型1.如果此
UUID
不是基于时间的UUID,则此方法将抛出UnsupportedOperationException。- 结果
-
这个
UUID
的时间戳 - 异常
-
UnsupportedOperationException
- 如果此UUID不是版本1 UUID
-
clockSequence
public int clockSequence()
与此UUID关联的时钟序列值。14位时钟序列值由该UUID的时钟序列字段构成。 时钟序列字段用于保证基于时间的UUID中的时间唯一性。
clockSequence
值仅在基于时间的UUID中有意义,该UUID具有版本类型1.如果此UUID不是基于时间的UUID,则此方法将抛出UnsupportedOperationException。- 结果
-
这个
UUID
的时钟序列 - 异常
-
UnsupportedOperationException
- 如果此UUID不是版本1 UUID
-
node
public long node()
与此UUID关联的节点值。48位节点值是从该UUID的节点字段构造的。 该字段旨在保存生成此UUID的机器的IEEE 802地址,以保证空间唯一性。
节点值仅在基于时间的UUID中有意义,该UUID具有版本类型1.如果此UUID不是基于时间的UUID,则此方法将抛出UnsupportedOperationException。
- 结果
-
此
UUID
的节点值 - 异常
-
UnsupportedOperationException
- 如果此UUID不是版本1 UUID
-
toString
public String 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
的哈希码。- 重写:
-
hashCode
在类Object
- 结果
-
此
UUID
哈希码值 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
将此对象与指定的对象进行比较。 结果是true
当且仅当参数不是null
,是UUID
对象,具有相同的变体,并且包含相同的值,位为bit,如此UUID
。- 重写:
-
equals
在类Object
- 参数
-
obj
- 要比较的对象 - 结果
-
true
如果对象相同; 否则为false
- 另请参见:
-
Object.hashCode()
,HashMap
-
compareTo
public int compareTo(UUID val)
将此UUID与指定的UUID进行比较。如果UUID不同的最重要字段对于第一个UUID更大,则两个UUID中的第一个大于第二个UUID。
- Specified by:
-
compareTo
接口Comparable<UUID>
- 参数
-
val
-UUID
比较UUID
- 结果
-
-1,0或1,因为此
UUID
小于,等于或大于val
-
-