`
- 浏览:
104849 次
- 性别:
- 来自:
北京
-
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、种子相同即使实例不同也产生相同的随机数
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
主要介绍了Java Random.nextInt()方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
介绍一下Random类的使用,以及如何生成指定区间的随机数组以及实现程序中要求的几率
java random原始代码java_random 我创建的一些随机Java源代码
java random 源码
此文档以一个小的实例讲解了java随机数random的使用,在java当中随机数的使用率较高,所以需要熟练掌握随机数的使用
java random原始代码随机重构Java 随机重构Java源代码
Java Random类的详细介绍(Java生成随机数)一、Random类的使用1.Random类生成随机数(int)的基本语法:2.几种常用的随机数生成二、Random类的详细介绍1.生成指定范围的数字2.Random.nextInt()与Math.random()的区别 ...
random原始代码有储层的随机抽样 无需随机更换容器即可进行随机采样的代码。 它从包含n个项目的文件中随机选择k个项目的样本。 通常,n足够大,无法容纳到主存储器中。 此算法也适用于流数据 入门 python和java代码...
NULL 博文链接:https://lidongfu005.iteye.com/blog/2012223
生成UUID
生成随机字符串 参数passLength:要生成多少长度的字符串 param type:需要哪种类型 // type=0:纯数字(0-9) // type=1:全小写字母(a-z) // type=2:全大写字母(A-Z) // type=3: 数字+小写字母 ...
JavaScript
random原始代码客观的 开发遵循Java语言规范和Java语法规则的随机生成的程序。 可以对随机生成的代码进行编译,但是生成的代码是一个没有意义的程序,本身没有逻辑。 该应用程序是使用支持Java 1.8 JDK的Java编程...
JSON-RPC-Java RANDOM.ORG JSON-RPC API(版本3)实现。 这是RANDOM.ORG JSON-RPC API(R3)的Java实现。 它通过RandomOrgClient类提供对API的已签名和未签名方法的序列化或非序列化访问。 它还通过RandomOrgClient...
java random 源码
主要介绍了java Random.nextInt()方法的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java random 源码
42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的Random.zip42.java中的...
63.java HashFamily.java IntCell.java KdTree.java LeftistHeap.java MaxSumTest.java MemoryCell.java MyArrayList.java MyLinkedList.java PairingHeap.java QuadraticProbingHashTable.java RadixSort.java ...
用Java语言实现的随机森林算法,有详细注释,希望对大家有所帮助