有三种方法:

  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. 剑指Offer30 从1到n整数出现1的个数

    /************************************************************************* > File Name: 30_NumerO ...

  2. jQuery选择器之表单选择器Demo

    测试代码: 09-表单选择器.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  3. Laravel-Administrator enum使用数字key

    参考连接:Enum filter with numeric values 修改Fields\Enum::build()方法 $options['options'][] = array( 'id' =& ...

  4. Unity3d之截图

    1.Application.CaptureScreenshot("Screenshot.png", 0); 2. exture2D CaptureScreenshot2(Rect  ...

  5. HTML、JS、CSS之特殊字符

    可能这是冷知识了,并不为多数人知道像HTML.JS.CSS它们的特殊字符的写法,我也是在网上收录的在这里make一下: 箭头类 符号 UNICODE 符号 UNICODE HTML JS CSS HT ...

  6. shell中使用echo命令改变输出显示样式

    文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例:echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色,前景白色,闪 ...

  7. c++错误修复 数据库无法打开 无法右击 run outtiime

    先前有安装vs2015失败的前提 现象:1.无法右击  显示 explorer.exe   c++        run outtiime  这些字样 2. 安装有数据库的软件都不能用.显示数据库连接 ...

  8. OC1-XML文件解析

    <?xml version = "1.0" encoding="utf-8"?> <Users> <User id="0 ...

  9. OC5_@class关键字

    // // ClassB.h // OC5_@class关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zha ...

  10. python基础:os模块中关于文件/目录常用的函数使用方法

    Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...