- すべての実装されたインタフェース:
Serializable
,Comparable<UUID>
public final class UUID extends Object implements 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
- 関連項目:
- 直列化された形式
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 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
取得用のStaticファクトリです。long
node()
このUUIDに関連したノード値static UUID
randomUUID()
タイプ4 (擬似ランダム生成) UUIDを取得するためのstaticファクトリ。long
timestamp()
このUUIDに関連したタイムスタンプ値String
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ではない場合
-
ノード
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
のハッシュ・コードを返します。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- この
UUID
のハッシュ・コード値 - 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)このオブジェクトを指定されたオブジェクトと比較します。 結果がtrue
になるのは、引数がnull
ではなく、UUID
オブジェクトであり、このUUID
と同じ形式および同じ値(ビット対ビット)を保持する場合だけです。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
-比較対象のオブジェクト- 戻り値:
- オブジェクトが同じである場合は
true
、それ以外の場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-
compareTo
public int compareTo(UUID val)このUUIDを指定されたUUIDと比較します。2つのUUIDで異なっている最上位フィールドが、最初のUUIDの方が大きい場合、最初のUUIDが2番目のものより大きいと見なされます。
- 定義:
compareTo
、インタフェース:Comparable<UUID>
- パラメータ:
val
- このUUID
と比較するUUID
- 戻り値:
- この
UUID
がval
より小さい場合は -1、等しい場合は0、大きい場合は1
-