jdk1.4とjdk 1.5乱数生成の違いについて

1172 ワード

最近1つのピクチャーの検証コードの東をやって、4ビットのランダムな数字、javaのRadomクラスを採用してランダムな数を生成して、tomcat 6の下で、正常に運行します.しかし、tomcat 5では常に4つの同じ数字です.分析したところ、tomcatとは関係ないはずなのか、jdkの違いなのか、tomcat 6ではjdk 5が使用されている.0,tomcat 5ではjdk 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の意味でどのような違いがありますか.