有三种方法:

  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. Centos安装配置Postfix邮件服务器

    发布时间:July 6, 2012 // 分类:Mail // No Comments 在安装邮件服务器之前先了解几个名词,以后会用到: 1 2 3 4 5 6 MUA:用户代理端,即用户使用的写信. ...

  2. poj 2152 树形DP

    思路:这个没思路,看了陈启峰的论文写得. #include<map> #include<set> #include<cmath> #include<queue ...

  3. AIX学习笔记(更新中)

    AIX操作系统基本命令 系统的进入和退出login: 输入用户名(例如:user01)password: 输入用户口令若用户名及口令均正确,则用户将登陆成功.此时系统会出现命令提示符 $或#,即表示可 ...

  4. ZWave for Arduino

    https://sites.google.com/site/arduinozwave/http://www.ebay.com/sch/i.html?_trksid=p2050601.m570.l131 ...

  5. Cocos移植到Android的一些问题-中文乱码问题

    Android平台版本和设备碎片化很严重,因此从Win32平台移植到Android平台会有很多问题,下面是我们归纳的从Win32平台移植到Android平台遇到的一些问题.在Android平台中文乱码 ...

  6. c#中sqlhelper类的编写(二)

    上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用 ...

  7. 20141017--异常语句try-catch

    //try-catch 尝试(try)-抓获(catch) try//尝试,保护起来,使程序出错也能执行 { //确定不会出错时不要用try,当不确定时使用try-catch可以捕获错误, int i ...

  8. javaScript之 变量、作用域和内存问题

    <javaScript高级程序设计>第四章  读书笔记 4.1  基本类型 和 引用类型 的值 1. 基本类型值 包括:Undefined.Null.Boolean.Number 和 St ...

  9. 4月12日学习笔记——jQuery操作属性和样式

    区分 DOM 属性和元素属性 <img src="images/image.1.jpg" id="hibiscus" alt="Hibiscus ...

  10. 《HTML5与CSS3基础教程》学习笔记 ——Two Day

    第七章 1.  样式表:选择器和生命块 2.  !important: 某条声明的重要程度比其他高,在末尾添加 3.  属性值:inherit;  是强制继承 4.  1em=16px; 5.  可以 ...