2009-05-04 19 views
0
String s = UUID.randomUUID().toString(); 
return s.substring(0,8) + s.substring(9,13) + s.substring(14,18) + 
     s.substring(19,23) + s.substring(24); 

私はJDK1.5のUUIDを使用していますが、ネットに接続/切断すると時間がかかりすぎます。
私はUUIDがネットにアクセスしたいと思うかもしれません。
誰かが私を助けることができますか?私のUUIDが時間がかかりすぎるのはなぜですか?

+3

それはあなたの質問を理解するのは難しいです。更新することをお勧めします... –

答えて

2

UUIDの生成はローカルで行われ、ネットワーク接続は必要ありません。

0

UUIDのjavadoc http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.htmlには、UUIDの生成方法に関するいくつかの良い情報があります。時間とクロックの周波数を使用してUUIDを生成します。 sharptoothのように、ネットワークインターフェースは必要ありません。この問題を引き起こしている可能性のある他の同時プロセスが実行されている可能性はありますか? the API odcを引用

+2

実際には、タイプ1のUUIDにデータを入力するためにネットワークインターフェイスが必要ですが、ここでは使用されていません。 –

2

public static UUID randomUUID() 

タイプ4(擬似ランダム生成)UUIDを取得するためのstaticファクトリ。 UUIDは、暗号で強い疑似ランダム 番号生成器 を使用して生成されます。

あなたの遅延は、おそらく、暗号強度の高いRNGの使う初期によって引き起こされている - これらはある程度の時間がかかり、さらにエントロピーの源として、ネットワーク接続の存在に依存する場合があります。ただし、これはJVMの実行時に1回だけ発生します。私はこの問題を回避する方法を見ていない。

0

これらのsstring呼び出しの目的は何ですか?元の文字列を返すようです。

+0

彼はUUIDの中から「 - 」を切っている –

0

5つのストリングを一緒に追加する場合は、大きなデータセットで問題が発生する可能性があります。 StringBufferを使用してみてください。特に大きなデータセットの場合は、1-2文字列以上を連結すると驚くべきことです。

0

Javaの以前のバージョン(6とそれ以前は?)では、ランダムにバグがあり、全体の一時ディレクトリ。 NVIDIAの悪質なビルドマシンでは、シード生成に10分かかります。一時ディレクトリのサイズを確認することができます。

比較:http://www.docjar.com/html/api/sun/security/provider/SeedGenerator.java.html へ:http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules/j2me/sun/security/provider/SeedGenerator.java.htm

関連する問題