随机数

本文探讨了在Java中生成随机数的两种方式:Math.random()和Random类。详细解释了这两种方法的工作原理,包括Math.random()如何通过Random类产生随机数,以及Random类的构造器和种子生成机制。还介绍了nextInt()等随机数生成方法的实现细节,并指出这些是伪随机数,相同种子会产生相同序列。
摘要由CSDN通过智能技术生成

将目标明确化,细节化

昨天和室友聊天,起去年有什么收获呀?
我们俩四目相对,哈哈一笑,异口同声说到:没有。随后我室友说到,我去年没有收获是因为没有明确的目标,我才意识到我从来没有过明确的目标呀。

在过去,在去年,我有过许多宽泛的目标,比如:读一些书,做一些运动。今天开心,拿起书读了两页,今天天气好,去跑了会步,看起来确实读书和运动了,但仔细回想起来,并没有太大的收获,还容易给自己一种特充实的假象。


java中获取随机数的又两种方法:

1. Math.random()

Math.random():返回一个[0.0,1.0)之间的double值。

    //获取一个double型随机数:
    double double_r = Math.random();
    //获取一个int型随机数,只需将double型强转为int型即可,如获取一个[0,100)的int值:
    int int_r = (int)(Math.random() * 100);

实现原理:

    //Math的静态方法random
    public static double random() {
        return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
    }

    //Math中的静态内部类RandomNumberGeneratorHolder
    private static final class RandomNumberGeneratorHolder {
        //静态常量成员randomNumberGenerator
        static final Random randomNumberGenerator = new Random();
    }

我们可以看到,Math中的静态方法random()通过获取静态内部类中的静态常量成员randomNumberGenerator来产生随机数,本质上还是使用Random类产生随机数。

2. Random类

    Random random = new Random();
    或者
    Random random = new Random(100);

    int intR = random.nextInt();
    double doubleR = random.nextDouble();

主要成员变量:

private final AtomicLong seed;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值