public final class UUID extends Object implements 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的布局的UUID 。 上述的位布局仅用于有效UUID为2的变体值,其指示里奇- SALZ变体。
版本字段保存描述此类型的值UUID 。 UUID有四种不同的基本类型:基于时间,DCE安全性,基于名称和随机生成的UUID。 这些类型的版本值分别为1,2,3和4。
有关包括用于创建UUID的更多信息,请参见RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace第4.2节“创建基于时间的UUID的算法”。
| Constructor and Description |
|---|
UUID(long mostSigBits, long leastSigBits)
构造一个新
UUID使用指定的数据。
|
| Modifier and Type | Method and Description |
|---|---|
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的版本号。
|
public UUID(long mostSigBits,
long leastSigBits)
UUID使用指定的数据。
mostSigBits被用于最显著64位UUID和leastSigBits成为的至少显著64位UUID 。
mostSigBits -的最显著位
UUID
leastSigBits -的的最低显著位
UUID
public static UUID randomUUID()
UUID是使用加密强伪随机数生成器生成的。
UUID
public static UUID nameUUIDFromBytes(byte[] name)
UUID 。
name -的字节数组被用于构造
UUID
UUID从指定的数组生成
public static UUID fromString(String name)
UUID如在所描述的字符串标准表示
toString()方法。
name - 一个指定UUID的
UUID
UUID具有指定的值
IllegalArgumentException -如果在描述的名称不符合字符串表示
toString()
public long getLeastSignificantBits()
public long getMostSignificantBits()
public int version()
UUID的版本号UUID 。
版本号描述这怎么UUID产生。
版本号具有以下含义:
UUID
public int variant()
UUID的变式号。
变体号描述的布局UUID 。
变式号码具有以下含义:
UUID的变体号
public long timestamp()
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
public int clockSequence()
14位时钟序列值由该UUID的时钟序列字段构成。 时钟序列字段用于保证基于时间的UUID中的时间唯一性。
clockSequence值仅在具有版本类型1的基于时间的UUID中有意义。如果此UUID不是基于时间的UUID,则此方法将抛出UnsupportedOperationException。
UUID的时钟顺序
UnsupportedOperationException - 如果这个UUID不是版本1的UUID
public long node()
48位节点值由该UUID的节点字段构成。 该字段旨在保存生成此UUID的机器的IEEE 802地址,以保证空间唯一性。
节点值仅在具有版本类型1的基于时间的UUID中有意义。如果此UUID不是基于时间的UUID,则此方法将抛出UnsupportedOperationException。
UUID
UnsupportedOperationException - 如果此UUID不是版本1 UUID
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"
public int hashCode()
UUID的哈希码。
hashCode在类
Object
UUID哈希码值
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
true如果且仅当参数不是null ,是一个UUID对象,具有相同的变体,并且包含相同的值,位为位,就像这样UUID 。
equals在
Object
obj - 要比较的对象
true如果对象是一样的;
false否则
Object.hashCode() , HashMap
public int compareTo(UUID val)
如果UUID不同的最重要字段对于第一个UUID而言较大,则两个UUID中的第一个大于第二个UUID。
compareTo在接口
Comparable<UUID>
val -
UUID要对这
UUID进行比较
UUID小于,等于或大于
val
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.