表示不可变的通用唯一标识符 (UUID) 的类。 UUID 表示 128 位值。这些全局标识符存在不同的变体。此类的方法用于操作 Leach-Salz 变体,尽管构造函数允许创建 UUID 的任何变体(如下所述)。
UUID 有四种不同的基本类型:基于时间、DCE 安全、基于名称和随机生成的 UUID。这些类型的版本值分别为 1、2、3 和 4。
- 用于在 Web 应用程序中创建会话 ID。它还用于创建交易 ID。
- 它延伸对象类。
- 它实现了可串行化和可比接口。
构造函数:
UUID(long mostSigBits, long leastSigBits)
使用指定的数据构造一个新的 UUID。
mostSigBits - UUID 的最高有效位
lessSigBits - UUID 的最低有效位
方法:
- int clockSequence():与此 UUID 关联的时钟序列值。
14 位时钟序列值是从此 UUID 的时钟序列字段构造的。时钟序列字段用于保证基于时间的 UUID 中的时间唯一性。
ClockSequence 值仅在版本类型为 1 的基于时间的 UUID 中有意义。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。
Syntax: public int clockSequence(). Returns: The clock sequence of this UUID. Exception: UnsupportedOperationException - If this UUID is not a version 1 UUID
Java
// Java code illustrating clockSequence() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[]) throws
UnsupportedOperationException
{
UUID gfg = UUID.fromString("c81d4e2e-bcf2-11e6-869b-7df92533d2db");
// checking clock sequence
System.out.println(gfg.clockSequence());
}
}
输出:
1691
- intcompareTo(UUID val):将此 UUID 与指定的 UUID 进行比较。
如果 UUID 不同的最重要字段大于第一个 UUID,则两个 UUID 中的第一个大于第二个。
Syntax: public int compareTo(UUID val). Returns: -1, 0 or 1 as this UUID is less than, equal to, or greater than val. Exception: NA.
Java
// Java code illustrating compareTo() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
// generating random UUID
UUID gfg1 = UUID.randomUUID();
UUID gfg2 = UUID.randomUUID();
int compare = gfg1.compareTo(gfg2);
if(compare==1)
System.out.println("gfg1 is greater than gfg2");
else if(compare==0)
System.out.println("both are equal");
else
System.out.println("gfg1 is smaller than gfg2");
}
}
输出:
gfg1 is smaller than gfg2
- 布尔等于(对象 obj):将此对象与指定对象进行比较。当且仅当参数不为 null、是 UUID 对象、具有与此 UUID 相同的变体并且包含逐位相同的值时,结果为 true。
Syntax: public boolean equals(Object obj). Returns: true if the objects are the same; false otherwise Exception: NA.
Java
// Java code illustrating equals() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
// generating random UUID
UUID gfg1 = UUID.randomUUID();
UUID gfg2 = UUID.randomUUID();
if(gfg1.equals(gfg2))
System.out.println("both are equal");
else
System.out.println("both are not same");
}
}
输出:
both are not same
- 静态 UUID fromString(字符串名称):根据 toString() 方法中所述的字符串标准表示形式创建 UUID。
Syntax: public static UUID fromString(String name). Returns: a UUID with the specified value. Exception: IllegalArgumentException - If name does not conform to the string representation as described in toString()
Java
// Java code illustrating fromString() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
// generating random UUID
UUID gfg = UUID.fromString("e52232e1-0ded-4587-999f-4dd135a4a94f");
System.out.println("UUID is: " + gfg);
}
}
输出:
UUID is: e52232e1-0ded-4587-999f-4dd135a4a94f
- 长getLeastSignificantBits():此方法返回此 UUID 128 位值的最低有效 64 位。
Syntax: public long getLeastSignificantBits(). Returns: The least significant 64 bits of this UUID's 128 bit value. Exception: NA.
Java
// Java code illustrating getLeastSignificantBits() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
UUID gfg = UUID.randomUUID();
// checking the least significant bit
System.out.println("Least significant bit " +
gfg.getLeastSignificantBits());
}
}
输出:
Least significant bit -8406445530268383532
- 长getMostSignificantBits():此方法返回此 UUID 128 位值的最高有效 64 位。
Syntax: public long getMostSignificantBits() Returns: The most significant 64 bits of this UUID's 128 bit value. Exception: NA
Java
// Java code illustrating getMostSignificantBits() bit
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
UUID gfg = UUID.randomUUID();
// checking the most significant bit
System.out.println("Most significant bit " +
gfg.getMostSignificantBits());
}
}
输出:
Most significant bit 8138958362250724568
- int hashCode():此方法返回此 UUID 的哈希代码。
Syntax: public int hashCode(). Returns: the hash code for this UUID. Exception: NA.
Java
// Java code illustrating hashCode method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
UUID gfg = UUID.randomUUID();
// checking the hash code for this UUID
System.out.println("Hash code " +
gfg.hashCode());
}
}
输出:
Hash code -2073067668
- 静态 UUID 名称UUIDFromBytes(byte[] 名称):用于根据指定字节数组检索类型 3(基于名称)UUID 的静态工厂。
Syntax: public static UUID nameUUIDFromBytes(byte[] name) Returns: A UUID generated from the specified array. Exception: NA.
Java
// Java code illustrating nameUUIDFromBytes() methods
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[]) throws
UnsupportedOperationException
{
// creating byte array
byte[] b = {10, 23, 45};
// creating UUID from array
UUID gfg = UUID.nameUUIDFromBytes(b);
// checking UUID
System.out.println(gfg);
}
}
输出:
f76a74ae-83b6-389c-82ca-8ac0b9febd33
- 长node():与此 UUID 关联的节点值。
48 位节点值是从此 UUID 的节点字段构造的。该字段旨在保存生成该 UUID 的机器的 IEEE 802 地址,以保证空间唯一性。
该节点值仅在版本类型为 1 的基于时间的 UUID 中有意义。如果此 UUID 不是基于时间的 UUID,则此方法将抛出 UnsupportedOperationException。
Syntax: public long node(). Returns: The node value of this UUID. Exception: UnsupportedOperationException - If this UUID is not a version 1 UUID
Java
// Java code illustrating node() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[])
{
UUID gfg = UUID.fromString("c81d4e2e-bcf2-11e6-869b-7df92533d2db");
// checking node value for this UUID
System.out.println("Node value: "
+ gfg.node());
}
}
输出:
Node value: 138509024482011
- 静态 UUID randomUUID():用于检索类型 4(伪随机生成)UUID 的静态工厂。 UUID 是使用加密的强伪随机数生成器生成的。
Syntax: public static UUID randomUUID(). Returns: randomly generated UUID. Exception: NA
Java
// Java code illustrating randomUUID() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[]) throws
UnsupportedOperationException
{
UUID gfg = UUID.randomUUID();
// checking this UUID
System.out.println("UUID: "
+ gfg);
}
}
输出:
UUID: 937418f1-f1b6-4f7a-b9f6-9fa51ba780e3
- 长timestamp():与此 UUID 关联的时间戳值。
60 位时间戳值是从此 UUID 的 time_low、time_mid 和 time_hi 字段构造的。生成的时间戳自 UTC 时间 1582 年 10 月 15 日午夜起以 100 纳秒为单位进行测量。
时间戳值仅在版本类型为 1 的基于时间的 UUID 中有意义。如果此 UUID 不是基于时间的 UUID,则此方法将抛出 UnsupportedOperationException。
Syntax: public long timeStamp(). Returns: the time stamp value. Exception: NA.
Java
// Java code illustrating timeStamp() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[]) throws
UnsupportedOperationException
{
UUID gfg = UUID.fromString("c81d4e2e-bcf2-11e6-869b-7df92533d2db");
// checking time stamp for this UUID
System.out.println("time stamp: "
+ gfg.timestamp());
}
}
输出:
time stamp: 137004589606850094
- 字符串toString():此方法返回表示此 UUID 的 String 对象。
Syntax: public String toString(). Returns: a string object for this UUID. Exception: NA
Java
// Java code illustrating toString method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[]) throws
UnsupportedOperationException
{
UUID gfg = UUID.fromString("c81d4e2e-bcf2-11e6-869b-7df92533d2db");
// checking string format for this UUID
System.out.println("String equivalent: "
+ gfg.toString());
}
}
输出:
String equivalent: c81d4e2e-bcf2-11e6-869b-7df92533d2db
- int variant():与此 UUID 关联的变体编号。变体编号说明了 UUID 的布局。
Syntax: public int variant() Returns: The variant number of this UUID Exception: NA
Java
// Java code illustrating variant() method
import java.util.UUID;
class UUIDdemo
{
public static void main(String arg[]) throws
UnsupportedOperationException
{
UUID gfg = UUID.fromString("c81d4e2e-bcf2-11e6-869b-7df92533d2db");
// checking variant number for this UUID
System.out.println("variant number is: "
+ gfg.variant());
}
}
输出:
variant number is: 2
- int version():与此 UUID 关联的版本号。版本号说明了此 UUID 是如何生成的。版本号的含义如下:
- 1 基于时间的 UUID
- 2 DCE安全UUID
- 3 基于名称的UUID
- 4 随机生成的UUID
相关用法
- Java Java.util.ArrayDeque.add()用法及代码示例
- Java Java.util.ArrayDeque.addFirst()用法及代码示例
- Java Java.util.ArrayDeque.addLast()用法及代码示例
- Java Java.util.ArrayDeque.clear()用法及代码示例
- Java Java.util.ArrayDeque.clone()用法及代码示例
- Java Java.util.ArrayDeque.descendingIterator()用法及代码示例
- Java Java.util.ArrayDeque.element()用法及代码示例
- Java Java.util.ArrayDeque.getFirst()用法及代码示例
- Java Java.util.ArrayDeque.getLast()用法及代码示例
- Java Java.util.ArrayDeque.isEmpty()用法及代码示例
- Java Java.util.ArrayDeque.iterator()用法及代码示例
- Java Java.util.ArrayDeque.peek()用法及代码示例
- Java Java.util.ArrayDeque.peekFirst()用法及代码示例
- Java Java.util.ArrayDeque.peekLast()用法及代码示例
- Java Java.util.ArrayDeque.poll()用法及代码示例
- Java Java.util.ArrayDeque.pollFirst()用法及代码示例
- Java Java.util.ArrayDeque.pollLast()用法及代码示例
- Java Java.util.ArrayDeque.pop()用法及代码示例
- Java Java.util.ArrayDeque.push()用法及代码示例
- Java Java.util.ArrayDeque.remove()用法及代码示例
- Java Java.util.ArrayDeque.removeFirst()用法及代码示例
- Java Java.util.ArrayDeque.removeLast()用法及代码示例
- Java Java.util.ArrayDeque.removeLastOccurrence()用法及代码示例
- Java Java.util.ArrayDeque.size()用法及代码示例
- Java Java.util.ArrayDeque.toArray()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.util.UUID class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。