java.lang.Object
|—java.util.UUID
public final class UUID
extends Object
implements Serializable, Comparable
表示不可变的通用唯一标识符 (UUID) 的类。 UUID 代表一个 128 位的值。
这些全局标识符存在不同的变体。 此类的方法用于操作 Leach-Salz 变体,尽管构造函数允许创建 UUID 的任何变体(如下所述)。
变体 2 (Leach-Salz) UUID 的布局如下: 最重要的 long 由以下无符号字段组成:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
0x000000000000F000 version
0x0000000000000FFF time_hi
最不重要的 long 由以下无符号字段组成:
0xC000000000000000 variant
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF node
变量字段包含一个标识 UUID 布局的值。 上述位布局仅对变体值为 2 的 UUID 有效,表示 Leach-Salz 变体。
version 字段包含一个描述此 UUID 类型的值。 UUID 有四种不同的基本类型:基于时间、DCE 安全、基于名称和随机生成的 UUID。 这些类型的版本值分别为 1、2、3 和 4。
构造函数摘要
构造函数描述
UUID(longmostSigBits,longleastSigBits)
使用指定的数据构造一个新的UUID。
方法总结
修饰符和类型方法描述
int
clockSequence()
与此UUID关联的时钟序列值。
int
compareTo(UUIDval)
将此UUID与指定的UUID进行比较。
boolean
equals(Objectobj)
将此对象与指定对象进行比较。
staticUUID
fromString(Stringname)
根据toString()方法中描述的字符串标准表示创建UUID。
long
getLeastSignificantBits()
返回此UUID的128位值的最低有效64位。
long
getMostSignificantBits()
返回此UUID的128位值的最高有效64位。
int
hashCode()
返回此UUID的哈希码。
staticUUID
nameUUIDFromBytes(byte[]name)
基于指定字节数组检索类型3(基于名称)UUID的静态工厂。
long
node()
与此UUID关联的节点值。
staticUUID
randomUUID()
用于检索类型4(伪随机生成)UUID的静态工厂。
long
timestamp()
与此UUID关联的时间戳值。
String
toString()
返回表示此UUID的String对象。
int
variant()
与此UUID关联的变体编号。
int
version()
与此UUID关联的版本号。
从类 java.lang.Object 继承的方法
clone,finalize,getClass,notify,notifyAll,wait,wait,wait
构造函数详细信息
UUID
public UUID(long mostSigBits, long leastSigBits)
使用指定的数据构造一个新的 UUID。 mostSigBits 用于 UUID 的最高有效 64 位,leastSigBits 成为 UUID 的最低有效 64 位。
参数:
参数名称参数描述
mostSigBits
UUID的最高有效位
leastSigBits
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)
根据 toString() 方法中描述的字符串标准表示创建 UUID。
参数:
参数名称参数描述
name
指定UUID的字符串
返回:
具有指定值的 UUID
Throws:
Throw名称Throw描述
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 是如何生成的。 版本号的含义如下:
返回:
此 UUID 的版本号
variant
public int variant()
与此 UUID 关联的变体编号。 变体编号描述了 UUID 的布局。 变体编号具有以下含义:
返回:
此 UUID 的变体编号
timestamp
public long timestamp()
与此 UUID 关联的时间戳值。
60 位时间戳值由该 UUID 的 time_low、time_mid 和 time_hi 字段构成。 生成的时间戳从 UTC 1582 年 10 月 15 日午夜开始以 100 纳秒为单位进行测量。
时间戳值仅在基于时间的 UUID 中有意义,其版本类型为 1。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。
返回:
此 UUID 的时间戳。
Throws:
Throw名称Throw描述
UnsupportedOperationException
如果此UUID不是版本1UUID
clockSequence
public int clockSequence()
与此 UUID 关联的时钟序列值。
14 位时钟序列值由该 UUID 的时钟序列字段构成。 时钟序列字段用于保证基于时间的 UUID 中的时间唯一性。
clockSequence 值仅在基于时间的 UUID 中有意义,其版本类型为 1。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。
返回:
此 UUID 的时钟序列
Throws:
Throw名称Throw描述
UnsupportedOperationException
如果此UUID不是版本1UUID
node
public long node()
与此 UUID 关联的节点值。
48 位节点值是根据此 UUID 的节点字段构造的。 此字段旨在保存生成此 UUID 的机器的 IEEE 802 地址,以保证空间唯一性。
节点值仅在基于时间的 UUID 中有意义,其版本类型为 1。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。
返回:
此 UUID 的节点值
Throws:
Throw名称Throw描述
UnsupportedOperationException
如果此UUID不是版本1UUID
toString
public String toString()
返回表示此 UUID 的 String 对象。
UUID 字符串表示如下 BNF 所述:
UUID = "-" "-"
"-"
"-"
time_low = 4*
time_mid = 2*
time_high_and_version = 2*
variant_and_sequence = 2*
node = 6*
hexOctet =
hexDigit =
"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
| "a" | "b" | "c" | "d" | "e" | "f"
| "A" | "B" | "C" | "D" | "E" | "F"
覆盖:
类 Object 中的 toString
返回:
此 UUID 的字符串表示形式
hashCode
public int hashCode()
返回此 UUID 的哈希码。
覆盖:
类 Object 中的 hashCode
返回:
此 UUID 的哈希码值
equals
public boolean equals(Object obj)
将此对象与指定对象进行比较。 当且仅当参数不为 null、是 UUID 对象、具有相同的变体并且包含与此 UUID 逐位相同的值时,结果才为 true。
覆盖:
类 Object 中的等于
参数:
参数名称参数名称
obj
比较对象
返回:
如果对象相同,则为 true; 否则为 false
compareTo
public int compareTo(UUID val)
将此 UUID 与指定的 UUID 进行比较。
如果 UUID 不同的最重要字段对于第一个 UUID 更大,则两个 UUID 中的第一个大于第二个。
指定者:
接口 ComparableUUID 中的 compareTo
参数:
参数名称参数描述
val
此UUID要与之比较的UUID
返回:
-1、0 或 1,因为此 UUID 小于、等于或大于 val