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」を参照してください。
コンストラクタと説明 |
---|
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 に関連付けられたバージョン番号です。 |
public UUID(long mostSigBits, long leastSigBits)
UUID
を構築します。UUID
の最上位64ビットにはmostSigBits
が使用されます。leastSigBits
は、UUID
の最下位64ビットになります。mostSigBits
- UUID
の最上位ビットleastSigBits
- UUID
の最下位ビットpublic static UUID randomUUID()
UUID
は、暗号強度の高い擬似乱数ジェネレータを使って生成されます。UUID
public static UUID nameUUIDFromBytes(byte[] name)
UUID
取得用のStaticファクトリです。name
- UUID
の構築に使用するバイト配列UUID
public static UUID fromString(String name)
toString()
メソッドに説明されているように、文字列標準表現からUUID
を作成します。name
- UUID
を指定する文字列UUID
IllegalArgumentException
- 名前がtoString()
の文字列表現に準拠していない場合public long getLeastSignificantBits()
public long getMostSignificantBits()
public int version()
UUID
に関連付けられたバージョン番号です。バージョン番号は、このUUID
の生成方法を示します。各バージョン番号の意味を、次に示します。
UUID
のバージョン番号public int variant()
UUID
に関連付けられた形式番号です。形式番号は、このUUID
のレイアウトを示します。各形式番号の意味を、次に示します。
UUID
の形式番号public long timestamp()
60ビットのタイムスタンプ値が、このUUID
のtime_low、time_mid、およびtime_hiフィールドから構築されます。結果として得られるタイムスタンプは、1582年10月15日UTCの深夜零時から100ナノ秒単位で計測された値になります。
タイムスタンプ値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。このUUID
が時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。
UUID
のタイムスタンプ。UnsupportedOperationException
- このUUIDがバージョン1 UUIDではない場合public int clockSequence()
14ビットのクロック・シーケンス値は、このUUIDのクロック・シーケンス・フィールドから構築されます。クロック・シーケンス・フィールドは、時間ベースUUIDの一時的な一意性を保証するために使用されます。
clockSequence
値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。このUUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。
UUID
のクロック・シーケンスUnsupportedOperationException
- このUUIDがバージョン1 UUIDではない場合public long node()
48ビットのノード値は、このUUIDのノード・フィールドから構築されます。このフィールドは、空間の一意性を保証するため、このUUIDを生成したマシンのIEEE 802アドレスを保持することを目的としています。
ノード値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。このUUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。
UUID
のノード値UnsupportedOperationException
- このUUIDがバージョン1 UUIDではない場合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"
public int hashCode()
UUID
のハッシュ・コードを返します。hashCode
、クラス: Object
UUID
のハッシュ・コード値Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
true
になるのは、引数がnull
ではなく、UUID
オブジェクトであり、このUUID
と同じ形式および同じ値(ビット対ビット)を保持する場合だけです。equals
、クラス: Object
obj
-比較対象のオブジェクトtrue
、それ以外の場合はfalse
Object.hashCode()
, HashMap
public int compareTo(UUID val)
2つのUUIDで異なっている最上位フィールドが、最初のUUIDの方が大きい場合、最初のUUIDが2番目のものより大きいと見なされます。
compareTo
、インタフェース: Comparable<UUID>
val
- このUUID
と比較するUUID
UUID
がval
より小さい場合は -1、等しい場合は0、大きい場合は1 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.