JavaTM 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 ビット値を表します。  

これらのグローバル識別子には、さまざまな形式が存在します。コンストラクタを使用すれば任意の形式の 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 に関連したクロックシーケンス値  14 ビットのクロックシーケンス値は、この UUID のクロックシーケンスフィールドから構築されます。
 int compareTo(UUID val)
          この UUID を指定された UUID と比較します。
 boolean equals(Object obj)
          このオブジェクトを指定されたオブジェクトと比較します。
static UUID fromString(String name)
          文字列標準表現から 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 に関連したノード値  48 ビットのノード値は、この UUID のノードフィールドから構築されます。
static UUID randomUUID()
          タイプ 4 (擬似ランダム生成) UUID を取得するための static ファクトリ。
 long timestamp()
          この UUID に関連したタイムスタンプ値  60 ビットのタイムスタンプ値が、この UUID の time_low、time_mid、および time_hi フィールドから構築されます。
 String toString()
          この UUID を表す String オブジェクトを返します。
 int variant()
          この UUID と関連付けられた形式番号。
 int version()
          この UUID と関連付けられたバージョン番号。
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

UUID

public UUID(long mostSigBits,
            long leastSigBits)
指定されたデータを使用して、新しい UUID を構築します。 UUID の最上位 64 ビットには mostSigBits が使用されます。 leastSigBits は、UUID の最下位 64 ビットになります。

パラメータ:
mostSigBits -
leastSigBits -
メソッドの詳細

randomUUID

public static UUID randomUUID()
タイプ 4 (擬似ランダム生成) UUID を取得するための static ファクトリ。 この UUID は、暗号強度の高い擬似乱数ジェネレータを使って生成されます。

戻り値:
ランダムに生成された UUID

nameUUIDFromBytes

public static UUID nameUUIDFromBytes(byte[] name)
指定されたバイト配列に基づく、タイプ 3 (名前ベース) UUID 取得用の Static ファクトリ

パラメータ:
name - UUID の構築に使用するバイト配列
戻り値:
指定された配列から生成された UUID

fromString

public static UUID fromString(String name)
文字列標準表現から UUID を作成します。 詳細は、toString() メソッドを参照してください。

パラメータ:
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 の生成方法を示します。 各バージョン番号の意味を、次に示します。

戻り値:
この UUID のバージョン番号

variant

public int variant()
この UUID と関連付けられた形式番号。形式番号は、この UUID の配置を示します。 各形式番号の意味を、次に示します。

戻り値:
この UUID の形式番号

timestamp

public long timestamp()
この UUID に関連したタイムスタンプ値  

60 ビットのタイムスタンプ値が、この UUID の time_low、time_mid、および time_hi フィールドから構築されます。結果として得られるタイムスタンプは、1582 年 10 月 15 日 UTC の夜半から 100 ナノ秒単位で計測された値になります。

タイムスタンプ値は、時間ベースの UUID (バージョンタイプ 1) でのみ有意性があります。 この UUID が時間ベースの UUID ではない場合、このメソッドは UnsupportedOperationException をスローします。

例外:
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"
 

オーバーライド:
クラス Object 内の toString
戻り値:
この UUID の文字列表現

hashCode

public int hashCode()
UUID のハッシュコードを返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この UUID に使うハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
このオブジェクトを指定されたオブジェクトと比較します。結果が true になるのは、引数が null ではなく、UUID オブジェクトであり、この UUID と同じ形式、同じ値、ビットフォービットを保持する場合だけです。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象のオブジェクト
戻り値:
オブジェクトが同じである場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

compareTo

public int compareTo(UUID val)
この UUID を指定された UUID と比較します。  

UUID が異なる最上位フィールドが最初の UUID より大きい場合、2 つの UUID のうち最初のものが 2 番目のものに続きます。

定義:
インタフェース Comparable<UUID> 内の compareTo
パラメータ:
val - この UUID と比較する UUID
戻り値:
この UUIDval よりも小さい場合は -1、等しい場合は 0、大きい場合は 1

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。