jdk1.4とjdk 1.5乱数生成の違いについて
最近1つのピクチャーの検証コードの東をやって、4ビットのランダムな数字、javaのRadomクラスを採用してランダムな数を生成して、tomcat 6の下で、正常に運行します.しかし、tomcat 5では常に4つの同じ数字です.分析したところ、tomcatとは関係ないはずなのか、jdkの違いなのか、tomcat 6ではjdk 5が使用されている.0,tomcat 5ではjdk 1を用いる.4.
次のテスト・プログラムで、問題を直感的に表示できます.
jre5.0で実行した結果は次のとおりです.
162862684487134624170311078722232312330250575038456227172745210654510831674820177
5053578143000401231
jre1.4で実行し、結果は次のとおりです.
666666666666666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666
このセグメントのテストコードはjre 1であることがわかる.5では乱数を生成する目的を達成したが,1.4では実現しなかった.なぜかというと、このコードを研究する鍵は、Random r=new Random()である.このコードは5.0と1.4の意味でどのような違いがありますか.
次のテスト・プログラムで、問題を直感的に表示できます.
private static int testRandom() {
Random r = new Random();
int i; //
i = Math.abs(r.nextInt(9));
return i;
}
public static void main(String[] args) {
int count = 0; //
StringBuffer pwd = new StringBuffer("");
while (count < 100) {
pwd.append(testRandom());
count++;
}
System.out.println(pwd.toString());
}
jre5.0で実行した結果は次のとおりです.
162862684487134624170311078722232312330250575038456227172745210654510831674820177
5053578143000401231
jre1.4で実行し、結果は次のとおりです.
666666666666666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666
このセグメントのテストコードはjre 1であることがわかる.5では乱数を生成する目的を達成したが,1.4では実現しなかった.なぜかというと、このコードを研究する鍵は、Random r=new Random()である.このコードは5.0と1.4の意味でどのような違いがありますか.