Java7 的Random伪随机数和线程安全的ThreadLocalRandom 一.Random伪随机数: Random 类专门用于生成一个伪随机数,它有两个构造器: 一个构造器使用默认的种子(以当前时间作为种子) ,另 个构造器需要程序员显式传入一个 long 整数的种子. 当使用默认的种子或传入相同的种子构造 Random 对象时,它们属于同一个种子,只要两个 Random 对象的种子相同,而且方法的调用顺序也相同,它们就会产生相同的数字序列 也就是说, Random 产生的数字并不是真正…
前言 大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现. 实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么他们二者之间的性能是怎么样的呢? Random的使用 Random类是JDK提供的生成随机数的类, 这个类不是随机的,而是伪随机的.什么是伪随机呢? 伪随机是指生成的随机数是有一定规律的,这个规律出现的周期因伪随机算法的优劣而异. 一般来说,周期比较长,但可以预见. 我们可以通过以下代码简单地使用…
本文主要讲述java中如何生成随机数. public class RandomTest { public static void main(String[] args) { // 生成随机数 方法1: //(int)(Math.random()(max-min)+min) =>即生成[min,max)的随机数. //(int)(Math.random()(max-min+1)+min) =>即生成[min,max]的随机数. for(int i = 0;i<50;i++) { int r…
java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<x<1的小数. 实例:如何写,生成随机生成出0~100中的其中一个数呢? 20-80之间随机数:(int)((80-20)*Math.random())+(20-0)即:.(最大-最小)*Math.random()+最小-0 Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强…
利用Java API生成50到100之间的随机数 /** * */ package com.you.demo; import java.util.Random; /** * @author Administrator * */ public class RandomNum { /** * @param args */ public static void main(String[] args) { Random rand = new Random(); System.out.println(ra…
JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = (int) ((Math.random() * 9 + 1) * Math.pow(10, len - 1)); return String.valueOf(rs); } 该方法是通过Math.random()获取[0.0, 1.0)的随机数,再乘以需要的位数.这里用乘9,再加1,而没有用乘10的方式…
java 随机生成4位的随机数测试类 @org.junit.Testpublic void testRandom(){ String msg="您的注册码为%s,谢谢注册!"; System.out.println("Math.random得到小数"); System.out.println(Math.round((Math.random()+1) * 1000)); System.out.println("Random"); System.ou…
java生成随机数方法: String random = String.valueOf(new Random().nextInt(9000)); String timestamp = String.valueOf(System.currentTimeMillis() / 1000); random = random + timestamp;…
Random对象生成随机数 首先需要导入包含Random的包 import java.util.Random; nextInt(int)方法将生成0~参数之间的随机整数但不包括参数. 例如生成0~99的随机整数: import java.util.Random; public class Test { public static void main(String[] args){ Random rand = new Random(); System.out.println(rand.nextIn…
Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数.Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数.在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字. Random 对象在种子数相同的情况下,相同次数生成的随机数是相同的.比如两个种子数相同的 Random 对象,第一次…