浅析Java中产生随机数的方式
在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。下面是两种方法的使用过程:
1. java.lang.Math.random()
在使用这一静态方法的时候,我们不需要import任何包,因为java.lang.*包是默认载入的,下面举例说明:
2. 创建java.util.Random对象package com.luiszhang.test;import java.util.Random;public class RandomTest {/** * @param args */public static void main(String[] args) {// 以100为基数创建两个随机数Random randomNumber1 = new Random(100);Random randomNumber2 = new Random(100);// 验证同一基数生成的Random对象产生的随机数是否相等for(int i = 0; i < 5; i++) {System.out.print(randomNumber1.nextInt() + " ");System.out.print(randomNumber2.nextInt() + "\n");System.out.println("Is equal is " + (randomNumber1.nextInt() == randomNumber2.nextInt()));System.out.println("------------------------------");System.out.print(randomNumber1.nextDouble() + " ");System.out.print(randomNumber2.nextDouble() + "\n");System.out.println("Is equal is " + (randomNumber1.nextDouble() == randomNumber2.nextDouble()));System.out.println("------------------------------");System.out.print(randomNumber1.nextFloat() + " ");System.out.print(randomNumber2.nextFloat() + "\n");System.out.println("Is equal is " + (randomNumber1.nextFloat() == randomNumber2.nextFloat()));System.out.println("------------------------------");System.out.print(randomNumber1.nextBoolean() + " ");System.out.print(randomNumber2.nextBoolean() + "\n");System.out.println("Is equal is " + (randomNumber1.nextBoolean() == randomNumber2.nextBoolean()));System.out.println("------------------------------");}// 以当前时间自己生成随机数,随机数范围为1-32for(int i = 0; i < 5; i++) {System.out.print((System.currentTimeMillis()%32 + 1) + "\n");System.out.println("------------------------------");}}}