- java.lang.Object
-
- java.util.UUID
-
- All Implemented Interfaces:
-
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
变量字段包含一个标识
UUID
的布局的UUID
。 上述位布局仅适用于变体值为2的UUID
,表示Leach-Salz变体。版本字段保存描述此
UUID
的类型的UUID
。 UUID有四种不同的基本类型:基于时间,DCE安全性,基于名称和随机生成的UUID。 这些类型的版本值分别为1,2,3和4。有关包括用于创建
UUID
s的算法的更多信息,请参阅RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace第4.2节“创建基于时间的UUID的算法”。- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 UUID(long mostSigBits, long leastSigBits)
使用指定的数据构造一个新的UUID
。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
字节数组 - 结果
-
A
UUID
从指定的数组生成
-
fromString
public static UUID fromString(String name)
创建UUID
如在所描述的字符串标准表示toString()
方法。- 参数
-
name
- 一个指定UUID
字符串 - 结果
-
A
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字段
UUID
。 所产生的时间戳记是从1582年10月15日UTC 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
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
对象,具有相同的变体,并包含相同的值,位为位,因为这个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
-
-