表示不可變的通用唯一標識符 (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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。