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 は何らかのネットにアクセスする必要があると思います。
誰でも私を助けることができますか?

4

6 に答える 6

2

API odc の引用:

public static UUID randomUUID()

タイプ 4 (疑似ランダムに生成された) UUID を取得するための静的ファクトリ。UUID は、暗号的に強力な疑似乱数ジェネレーターを使用して生成されます。

あなたの遅延はおそらく、暗号的に強力な RNG の初期化によって引き起こされています。これには時間がかかり、エントロピーのソースとしてのネットワーク接続の存在に依存することさえあります. ただし、これは JVM の実行時に 1 回だけ実行する必要があります。ただし、この問題を回避する方法はわかりません。

于 2009-05-04T08:25:25.660 に答える
2

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

于 2009-05-04T05:36:48.407 に答える
0

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

于 2009-05-04T07:51:44.650 に答える
0

Java の古いバージョン (6 以前か?) の場合、Random にバグがあり、一時ディレクトリ全体を反復処理します。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

于 2011-12-13T20:33:58.023 に答える
0

これらの s.substring 呼び出しの目的は何ですか? 元の文字列を返しているようです。

于 2009-05-06T21:14:11.693 に答える