Java生成随机数:System.currentTimeMillis(), Math.random()与Random类

需积分: 9 11 下载量 68 浏览量 更新于2024-11-21 收藏 70KB DOC 举报
"Java 随机数总结 三种不同随机数方法" 在Java编程语言中,随机数的生成在各种场景中都有广泛的应用,如模拟随机选择、生成随机字符串或数字等。Java提供了多种方式来生成随机数,主要包括以下三种方法: 1. **基于当前时间的随机数** 使用`System.currentTimeMillis()`可以获取到当前时间的毫秒值,这是一个long类型的数值,通常用于生成较大的随机数。由于时间总是在变化,因此每次调用都会得到不同的结果。 2. **Math.random()方法** `Math.random()`函数是Java中生成随机数的一个简单方式,它返回的是一个0.0(包含)到1.0(不包含)之间的double类型随机数。可以通过适当转换和乘法运算来生成指定范围内的整数或浮点数。 3. **Random类** Java的`java.util.Random`类是一个专业的随机数生成工具,功能更加强大且灵活。它可以生成各种类型(如int、long、float、double)的随机数,并且能够设置种子以控制随机数序列。以下是`Random`类的一些主要方法: - `Random()`:无参数构造函数,创建一个默认种子的随机数生成器。 - `Random(long seed)`:带种子的构造函数,允许指定种子来创建随机数生成器。 - `nextInt()`:生成一个int类型的随机数,可以指定范围。 - `nextLong()`:生成一个long类型的随机数,也可以指定范围。 - `nextFloat()` 和 `nextDouble()`:生成浮点数类型的随机数。 - `nextBoolean()`:生成一个boolean类型的随机值,true或false。 - `nextBytes(byte[] bytes)`:将随机字节填充到给定的字节数组中。 `Random`类的实例可以被多次调用来生成一系列随机数。如果使用相同的种子创建两个`Random`对象,它们将会生成相同的序列。这种特性在需要复现随机过程时非常有用。 在使用`Random`类时,需要注意的是,虽然它产生的数字看似随机,但实际上是“伪随机”的,即通过数学算法计算出来的,而不是真正意义上的随机。这种特性保证了结果的可预测性和重复性,对于大多数应用来说已经足够。 总结一下,Java提供了一系列的方法来生成随机数,可以根据具体需求选择合适的方式。对于复杂的需求,`Random`类提供了丰富的API来生成不同类型的随机数,而`Math.random()`和`System.currentTimeMillis()`则适用于简单快速的随机数生成。