有三种方法:

  1. Math.random():这个方法返回一个[0.0, 1.0)的一个随机double型数。它实际是调用Random类的nextDouble()方法。只不过Math类使用的是一个静态随机数生成器(即new Random()),是线程安全的一个方法,所以多个线程共用一个随机数生成器。如果很多线程都在频繁的使用随机数生成器,那么还是为每个线程分配一个随机数生成器比较好。此外在J2ME中好像不支持这个方法。
  2. Random类:java提供的强大的伪随机数生成器。有两个构造方法和主要的六类获取随机数的方法。
    1. 两个构造方法:
      1. Random():使用的是系统时间(System.nanoTime(),纳秒级)作为种子,这种随机数生成器生成的随机数总是不同的
      2. Random(long seed):使用特定的种子,如果两个随机数生成器的种子相同,以相同的顺序调用相同的方法,它们返回的随机数是一样的。(说白了,伪随机数也就是给定一个初值,然后按照一个算式,计算下一个值,下一个值。所以一旦种子确定了,那么所有的随机数序列其实都是确定的。所以叫伪随机数。在线扑克有时会作弊,就是通过与服务器系统时钟同步,从而获得相同的时钟种子,进而就可以确定它的随机数序列,也就可以知道所有的牌了)
    2. 六类获取随机数的方法:nextInt(), nextDouble(), nextLong(), nextBoolean(), nextFloat(), nextGaussian()。当然nextInt额外提供了限界的方法,都可以通过nextInt()实现,就不说啦~
  3. System.currentTimeMillis: 这返回的是从1970年1月1号0时0分0秒到目前的一个毫秒数。可以获取这个时间之后,自己通过取模之类的获得随机数(这其实就是自己定义随机数的生成方法了,Random类就是这样做的)。当然,上述第二种Random构造法可以以这个时间作为种子,那么每次返回的随机数也就不同了,因为调用的时间肯定不同。

java 产生随机数的方法的更多相关文章

  1. java 获取随机数的方法

    方法一: (数据类型)(最小值 + Math.random()*(最大值-最小值+1) ); 示例: (int)(1+Math.random()*(10-1+1)): 获取int类型 1-10的随机数 ...

  2. java关于随机数和方法重构

    1.生成随机数 源代码 package Zuote; public class SuiJiShu { public static void main( String args[] ) { java.u ...

  3. java 获取随机数的三种方法

    方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...

  4. Java获取随机数的几种方法

    Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...

  5. JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...

  6. java生成随机数方法

    java生成随机数方法: String random = String.valueOf(new Random().nextInt(9000)); String timestamp = String.v ...

  7. java代码--------编写0懂啊PI之间求随机数的方法

    总结:其实每次运行,显示出来的结果个数是随机的. package com.mmm; //编写0到PI之间求随机数的方法 public class MEm { public static void ma ...

  8. Java中随机数的产生方式与原理

    查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以 ...

  9. java产生随机数的几种方式

    java产生随机数的几种方式 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他 ...

随机推荐

  1. hdu 3917 Road constructions 最大权闭合子图

    样例说明: n(城市数目)   m(工程队数目) 每个工程队上交的税收 val[i] k(k个工程) xi   yi  ci  costi , 工程队ci承包由xi到yi,政府的补贴为costi 注意 ...

  2. 流操作text文件------读取、保存文档

    ************************************一.读取指定text文档中的内容:**************************************** 方法一. t ...

  3. Matlab之类型转换

    int转string:num2str(0); string转int:str2num('-1');

  4. oledb,odbc简易实体生成器.

    DataSet to code file(C#)工具. 方便自己写的odbc或者oledb的东西用的. sql server或者oracle等大数据库已经有EF的支持. 一些其他数据库还是用oledb ...

  5. 【Mongodb】---Scheme和Collections对应问题

    Mongodb通过mongoose来与数据进行操作.而mongoose是通过model来创建数据库中对应的collection mongoose.model('User', UserSchema); ...

  6. 【CSS3】---first-of-type选择器+nth-of-type(n)选择器

    first-of-type选择器 “:first-of-type”选择器类似于“:first-child”选择器,不同之处就是指定了元素的类型,其主要用来定位一个父元素下的某个类型的第一个子元素. 示 ...

  7. ASP.NET不拖控件教程(1)-认识JSON

    我讲讲脱离ASP.NET控件必备的一步,JSON和使用JQuery获取JSON吧! 高手跳过,写给学习中的人的.这篇帖子是假设你会使用JQuery(JQ这么普及,应该不至少没学过吧!真没学过以后再开帖 ...

  8. asp.net解决高并发的方案. (转自网络)

    最近几天一直在读代震军的博客,他是Discuz!NT的设计者,读了他的一系列关于Discuz!NT的架构设计文章,大呼过瘾,特别是Discuz!NT在解决高访问高并发时所设计的一系列方案,本人尤其感兴 ...

  9. C#中ToString和Formate格式大全

    C#中ToString格式大全 stringstr1 =); //result: 56,789.0 stringstr2 =); //result: 56,789.00 stringstr3 =); ...

  10. 很全的corel图像分类,场景识别图像库

    这是真正的Corel-5K图像集,共包含科雷尔(Corel)公司收集整理的5000幅图片,故名:Corel-5K,童鞋们可用于科学图像实验:分类.检索等.Corel-5k数据集是图像实验的事实标准数据 ...