`
polim
  • 浏览: 105899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Random

 
阅读更多
Java Random类可以获取随机数,请看如下代码:
public class RandomTest {

public static void main(String[] args) {
RandomTest.getRandom();
System.out.println("---------------------------");
RandomTest.notGetRandom();
}

/**
* 执行n次返回数据不同
*/
public static void getRandom(){
Random r = new Random();
for(int i=1;i<4;i++){
System.out.println("第"+i+"次结果为:"+r.nextInt());
}
}

/**
* 相同的机器执行多次返回的内容是一致的
*/
public static void notGetRandom(){
Random r = new Random(1000);
for(int i=1;i<4;i++){
System.out.println("第"+i+"次结果为:"+r.nextInt());
}
}
}

执行多次结果如下:
执行第一次输出结果为:
第1次结果为:-255222630
第2次结果为:1123609859
第3次结果为:-1656551992
---------------------------
第1次结果为:-1244746321
第2次结果为:1060493871
第3次结果为:-1826063944


执行第二次输出结果为:
第1次结果为:-552545679
第2次结果为:1866864931
第3次结果为:-1883987848
---------------------------
第1次结果为:-1244746321
第2次结果为:1060493871
第3次结果为:-1826063944

发现方法notGetRandom在相同的机器上执行n次返回的结果都是一样的。

具体原因如下:
random 源码中定义如下:
public Random() { this(++seedUniquifier + System.nanoTime()); }
private static volatile long seedUniquifier = 8682522807148012L;
每次构造一个Random对象时是以当前时间纳秒数加参数获得。


public Random(long seed) {
        this.seed = new AtomicLong(0L);
        setSeed(seed);
  }
而Random(long seed)构造方法是以固定的种子seed获得。所以出现前面demo的情况就不言而明了。
Java中Random遵循2个规则
1、种子不同产生不同的随机数
2、种子相同即使实例不同也产生相同的随机数
分享到:
评论

相关推荐

    Free Java Random Generating Text Styles.zip

    标题 "Free Java Random Generating Text Styles.zip" 暗示了一个关于Java语言的项目,但实际上,描述中提到的是JavaScript,这是一个常见的误解,因为Java和JavaScript在编程领域虽然名字相似,但实际上是两种不同...

    Java Random.nextInt()方法原理解析

    Java中的`Random`类是用于生成随机数的工具类,`nextInt()`方法是其核心功能之一,用于生成指定范围内的整数。在这个方法的解析中,我们将深入理解`nextInt()`的工作原理以及种子(seed)的概念。 `nextInt(int n)`...

    java random类

    介绍一下Random类的使用,以及如何生成指定区间的随机数组以及实现程序中要求的几率

    Java Random类的详细介绍(Java生成随机数)

    Java Random类的详细介绍(Java生成随机数)一、Random类的使用1.Random类生成随机数(int)的基本语法:2.几种常用的随机数生成二、Random类的详细介绍1.生成指定范围的数字2.Random.nextInt()与Math.random()的区别 ...

    Java基础之Random随机数.docx

    Java基础之Random随机数 Java中的随机数使用率非常高,因此掌握随机数的使用是非常重要的。在Java中,Random类提供了产生随机数的方法,下面将详细介绍Random类的使用。 Random类的使用 Random类是Java中生成...

    了解Java:RandomAccess

    标题中的“了解Java:RandomAccess”指的是Java编程语言中关于RandomAccess接口或随机访问的概念。在Java中,RandomAccess主要用于标记那些支持高效随机读取的输入流。这意味着,对于实现了RandomAccess接口的输入流...

    随机颜色、大小和位置的多边形画法

    本篇文章将详细解析如何使用javax.swing和java.random类来实现这一功能。 首先,`javax.swing`是Java提供的一个用于构建桌面应用GUI的库,它提供了丰富的组件和布局管理器,使得开发者可以方便地创建用户友好的图形...

    randomNumber_number_java_RandomNumber_

    本篇将详细讲解如何在Java中生成随机数,以及与之相关的`java.util.Random`类。 首先,`java.util.Random`是Java标准库中的一个类,它提供了各种方法来生成随机整数、浮点数和其他类型的随机值。要创建一个`Random`...

    javarandom源码-java_random:我创建的一些随机Java源代码

    在Java编程语言中,`Random`类是Java.util包下的一个核心类,它提供了一系列方法来生成各种类型的随机数。这个类广泛应用于各种场景,包括模拟、加密、游戏开发等。`java_random`项目看起来是一个个人创建的开源项目...

    javarandom源码-random-refactor-java:随机重构Java源代码

    本项目“javarandom源码-random-refactor-java”似乎是对Java原生`Random`类进行了重构,以提供更高效或者功能更丰富的随机数生成服务。下面将详细解析`Random`类的主要知识点以及重构可能涉及的方面。 1. **`...

    java试验,random函数调用等

    在Java编程语言中,`Random`类是生成随机数的核心工具,它位于`java.util`包下。这个类提供了各种方法来生成不同类型的随机数,包括整数、浮点数以及在特定范围内的数字。在"java试验,random函数调用等问题"中,...

    javarandom源码-Java_Stuff:我从中学习到的随机Java源代码及其语法

    在Java编程语言中,`Random`类是生成随机数的核心工具,它位于`java.util`包下。这个类提供了一种生成各种类型随机数的方法,包括整数、长整数、浮点数以及双精度浮点数。让我们深入研究`Random`类的源码,了解其...

    javarandom源码-Random-Sampling-With-A-Reservoir:用Java和python编写的用于随机采样而不用容

    random原始代码有储层的随机抽样 无需随机更换容器即可进行随机采样的代码。 它从包含n个项目的文件中随机选择k个项目的样本。 通常,n足够大,无法容纳到主存储器中。 此算法也适用于流数据 入门 python和java代码...

    RandomTool.java

    生成UUID

    Java产生随机数的两种方式

    本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`java.lang.Math.random()`方法。这是一个静态方法,不需要实例化对象就可以直接调用。...

    RandomNumber.java

    生成随机字符串 参数passLength:要生成多少长度的字符串 param type:需要哪种类型 // type=0:纯数字(0-9) // type=1:全小写字母(a-z) // type=2:全大写字母(A-Z) // type=3: 数字+小写字母 ...

    java Random.nextInt()方法的具体使用

    Java Random类的nextInt()方法详解 Java 中的 Random 类提供了一个名为 nextInt() 的方法,该方法可以生成一个随机的整数值,该值介于指定的区间内。下面将详细介绍该方法的使用方法和示例代码。 nextInt() 方法的...

    javarandom源码-java_code_generator:生成随机的Java源代码

    random原始代码客观的 开发遵循Java语言规范和Java语法规则的随机生成的程序。 可以对随机生成的代码进行编译,但是生成的代码是一个没有意义的程序,本身没有逻辑。 该应用程序是使用支持Java 1.8 JDK的Java编程...

    JAVA中的随机数产生和排序

    Java提供了两种主要的类来生成随机数:`java.util.Random` 和 `java.security.SecureRandom`。`Random` 类是最常用的,适用于大多数非安全性敏感的场景。创建 `Random` 实例后,可以通过其 `nextInt()`、`nextDouble...

    Java获取随机数的3种方法

    方法二:使用`java.util.Random`类 `Random`类提供了更丰富的随机数生成功能,它可以生成整数、浮点数、长整数等类型的随机数。创建一个`Random`对象后,你可以调用其方法来获取随机数。例如,生成1到10的整数: ```...

Global site tag (gtag.js) - Google Analytics