- すべての実装されたインタフェース:
Serializable
,Comparable<UUID>
これらのグローバル識別子には、さまざまな形式が存在します。 コンストラクタを使用すれば任意の形式のUUIDを作成できますが、このクラスのメソッドはLeach-Salz形式の操作用メソッドです。
形式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
のレイアウトを識別する値が含まれます。 前述のビット・レイアウトは、Leach-Salz形式を示す形式値2を保持する UUID
でのみ有効です。
versionフィールドには、この UUID
の型を示す値が含まれます。 UUIDには4種類の基本タイプがあります。時間ベースUUID、DCEセキュリティUUID、名前ベースUUID、およびランダム生成UUIDです。 これらの型は、version値1、2、3、および4をそれぞれ保持します。
UUID
の作成に使用されるアルゴリズムなどの詳細については、「RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace」のセクション4.2「Algorithms for Creating a Time-Based UUID」を参照してください。
- 導入されたバージョン:
- 1.5
- 関連項目:
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明int
このUUIDに関連したクロック・シーケンス値int
このUUIDを指定されたUUIDと比較します。boolean
このオブジェクトを指定されたオブジェクトと比較します。static UUID
fromString
(String name) toString()
メソッドに説明されているように、文字列標準表現からUUID
を作成します。long
このUUIDの128ビット値の最下位64ビットを返します。long
このUUIDの128ビット値の最上位64ビットを返します。int
hashCode()
このUUID
のハッシュ・コードを返します。static UUID
nameUUIDFromBytes
(byte[] name) 指定されたバイト配列に基づく、タイプ3 (名前ベース)UUID
取得用のStaticファクトリです。long
node()
このUUIDに関連したノード値static UUID
タイプ4 (擬似ランダム生成) UUIDを取得するためのstaticファクトリ。long
このUUIDに関連したタイムスタンプ値toString()
このUUID
を表すString
オブジェクトを返します。int
variant()
このUUID
に関連付けられた形式番号です。int
version()
このUUID
に関連付けられたバージョン番号です。
-
コンストラクタの詳細
-
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を取得するためのstaticファクトリ。 このUUID
は、暗号強度の高い擬似乱数ジェネレータを使って生成されます。- 戻り値:
- ランダムに生成された
UUID
-
nameUUIDFromBytes
public static UUID nameUUIDFromBytes(byte[] name) 指定されたバイト配列に基づく、タイプ3 (名前ベース)UUID
取得用のStaticファクトリです。- パラメータ:
name
-UUID
の構築に使用するバイト配列- 戻り値:
- 指定された配列から生成された
UUID
-
fromString
toString()
メソッドに説明されているように、文字列標準表現からUUID
を作成します。- パラメータ:
name
-UUID
を指定する文字列- 戻り値:
- 指定値を使用した
UUID
- 例外:
IllegalArgumentException
- 名前が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
の生成方法を示します。 各バージョン番号の意味を、次に示します。- 1時間ベースのUUID
- 2 DCEセキュリティUUID
- 3名前ベースのUUID
- 4ランダムに生成されたUUID
- 戻り値:
- この
UUID
のバージョン番号
-
variant
public int variant()このUUID
に関連付けられた形式番号です。 形式番号は、このUUID
のレイアウトを示します。 各形式番号の意味を、次に示します。- 0 NCS下位互換性を維持するために予約されている
- 2 IETF RFC 4122 (Leach-Salz)。このクラスが使用
- 6予約済み。Microsoft Corporationの下位互換性維持
- 7将来の定義のために予約済み
- 戻り値:
- この
UUID
の形式番号
-
timestamp
public long timestamp()このUUIDに関連したタイムスタンプ値60ビットのタイムスタンプ値が、この
UUID
のtime_low、time_mid、およびtime_hiフィールドから構築されます。 結果として得られるタイムスタンプは、1582年10月15日UTCの深夜零時から100ナノ秒単位で計測された値になります。タイムスタンプ値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。 この
UUID
が時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。- 戻り値:
- この
UUID
のタイムスタンプ。 - 例外:
UnsupportedOperationException
- このUUIDがバージョン1 UUIDではない場合
-
clockSequence
public int clockSequence()このUUIDに関連したクロック・シーケンス値14ビットのクロック・シーケンス値は、このUUIDのクロック・シーケンス・フィールドから構築されます。 クロック・シーケンス・フィールドは、時間ベースUUIDの一時的な一意性を保証するために使用されます。
clockSequence
値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。 このUUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。- 戻り値:
- この
UUID
のクロック・シーケンス - 例外:
UnsupportedOperationException
- このUUIDがバージョン1 UUIDではない場合
-
node
public long node()このUUIDに関連したノード値48ビットのノード値は、このUUIDのノード・フィールドから構築されます。 このフィールドは、空間の一意性を保証するため、このUUIDを生成したマシンのIEEE 802アドレスを保持することを目的としています。
ノード値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。 このUUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。
- 戻り値:
- この
UUID
のノード値 - 例外:
UnsupportedOperationException
- このUUIDがバージョン1 UUIDではない場合
-
toString
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"
-
hashCode
public int hashCode()このUUID
のハッシュ・コードを返します。 -
equals
public boolean equals(Object obj) このオブジェクトを指定されたオブジェクトと比較します。 結果がtrue
になるのは、引数がnull
ではなく、UUID
オブジェクトであり、このUUID
と同じ形式および同じ値(ビット対ビット)を保持する場合だけです。 -
compareTo
public int compareTo(UUID val) このUUIDを指定されたUUIDと比較します。2つのUUIDで異なっている最上位フィールドが、最初のUUIDの方が大きい場合、最初のUUIDが2番目のものより大きいと見なされます。
- 定義:
compareTo
、インタフェースComparable<UUID>
- パラメータ:
val
- このUUID
と比較するUUID
- 戻り値:
- この
UUID
がval
より小さい場合は -1、等しい場合は0、大きい場合は1
-