JavaTM 2 Platform
Standard Ed. 6

java.util
類別 UUID

java.lang.Object
  繼承者 java.util.UUID
所有已實作的介面:
Serializable, Comparable<UUID>

public final class UUID
extends Object
implements Serializable, Comparable<UUID>

表示通用唯一標識符 (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
 

variant 欄位包含一個表示 UUID 佈局的值。以上描述的位佈局僅在 UUID 的 variant 值為 2(表示 Leach-Salz 變體)時才有效。

version 欄位保存描述此 UUID 型別的值。有 4 種不同的基本 UUID 型別:基於時間的 UUID、DCE 安全 UUID、基於名稱的 UUID 和隨機產生的 UUID。 這些型別的 version 值分別為 1、2、3 和 4。

有關用於創建 UUID 的演算法的更多資訊,請參閱 RFC 4122: 通用唯一標識符 (Universally Unique Identifier) (UUID) URN Namespace, section 4.2 ";創建基於時間的 UUID" 的演算法。

從以下版本開始:
1.5
另請參見:
序列化表格

建構子摘要
UUID(long mostSigBits, long leastSigBits)
          使用指定的資料建構新的 UUID
 
方法摘要
 int clockSequence()
          與此 UUID 相關聯的時鐘序列值。
 int compareTo(UUID val)
          將此 UUID 與指定的 UUID 比較。
 boolean equals(Object obj)
          將此物件與指定物件比較。
static UUID fromString(String name)
          根據 toString() 方法中描述的字元串標準表示形式創建 UUID
 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()
          返回表示此 UUIDString 物件。
 int variant()
          與此 UUID 相關聯的變體號。
 int version()
          與此 UUID 相關聯的版本號。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

UUID

public UUID(long mostSigBits,
            long leastSigBits)
使用指定的資料建構新的 UUIDmostSigBits 用於 UUID 的最高有效 64 位,而 leastSigBits 將成為 UUID 的最低有效 64 位。

參數:
mostSigBits -
leastSigBits -
方法詳細資訊

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
拋出:
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 欄位建構。所得到的時間戳以 100 毫微秒為單位,從 UTC(通用協調時間) 1582 年 10 月 15 日零時開始。

時間戳值僅在在基於時間的 UUID(其 version 型別為 1)中才有意義。如果此 UUID 不是基於時間的 UUID,則此方法拋出 UnsupportedOperationException。

拋出:
UnsupportedOperationException - 如果此 UUID 不是 version 為 1 的 UUID。

clockSequence

public int clockSequence()
與此 UUID 相關聯的時鐘序列值。

14 位的時鐘序列值根據此 UUID 的 clock_seq 欄位建構。clock_seq 欄位用於保證在基於時間的 UUID 中的時間唯一性。

clockSequence 值僅在基於時間的 UUID(其 version 型別為 1)中才有意義。如果此 UUID 不是基於時間的 UUID,則此方法拋出 UnsupportedOperationException。

返回:
UUID 的時鐘序列。
拋出:
UnsupportedOperationException - 如果此 UUID 的 version 不為 1。

node

public long node()
與此 UUID 相關的節點值。

48 位的節點值根據此 UUID 的 node 欄位建構。此欄位旨在用於保存機器的 IEEE 802 位址,該位址用於產生此 UUID 以保證空間唯一性。

節點值僅在基於時間的 UUID(其 version 型別為 1)中才有意義。如果此 UUID 不是基於時間的 UUID,則此方法拋出 UnsupportedOperationException。

返回:
UUID 的節點值。
拋出:
UnsupportedOperationException - 如果此 UUID 的 version 不為 1。

toString

public String toString()
返回表示此 UUIDString 物件。

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"
  

覆寫:
類別 Object 中的 toString
返回:
UUID 的字元串表示形式。

hashCode

public int hashCode()
返回此 UUID 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
UUID 的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
將此物件與指定物件比較。當且僅當參數不為 null、而是一個 UUID 物件、具有與此 UUID 相同的 varriant、包含相同的值(每一位均相同)時,結果才為 true

覆寫:
類別 Object 中的 equals
參數:
obj - 要與之比較的物件。
返回:
如果物件相同,則返回 true;否則返回 false
另請參見:
Object.hashCode(), Hashtable

compareTo

public int compareTo(UUID val)
將此 UUID 與指定的 UUID 比較。

如果兩個 UUID 不同,且第一個 UUID 的最高有效欄位大於第二個 UUID 的對應欄位,則第一個 UUID 大於第二個 UUID。

指定者:
介面 Comparable<UUID> 中的 compareTo
參數:
val - 要與此 UUID 比較的 UUID
返回:
在此 UUID 小於、等於或大於 val 時,分別返回 -1、0 或 1。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only