java如何生成随机数

java基础知识总结-经典 专栏收录该内容
8 篇文章 0 订阅

java如何生成随机,java生成随机数的两种方式。

java生成随机数有两种方法:

1、使用Math方法,Math.random()随机生成一个double类型[0,1),如果想生成1~100的随机数:

如:int num = (int)(Math.random()*100);

2、使用Random方法生成随机数

	public static void testRandom() {
        Random random = new Random();

        random.setSeed(10000L);

        for(int i = 0 ; i < 10 ; i ++) {
            System.out.println(random.nextInt(1000));
        }
        System.out.println("------------------");
        random = new Random();
        random.setSeed(10000L);
        for(int i = 0 ; i < 10 ; i ++) {
            System.out.println(random.nextInt(1000));
        }

    }

结果如下:

208
572
116
475
500
574
641
166
727
670
------------------
208
572
116
475
500
574
641
166
727
670

3、使用SecureRandom生成随机数,代码如下:

	public static void testSecureRandom() {
        SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
        secureRandom.setSeed(10000L);
        for(int i = 0 ; i < 10 ; i ++) {
            System.out.println(secureRandom.nextInt(1000));
        }
        System.out.println("-------------------");
        secureRandom = new SecureRandom();
        secureRandom.setSeed(10000L);
        for(int i = 0; i < 10 ; i ++) {
            System.out.println(secureRandom.nextInt(1000));
        }

    }

结果如下:

851
624
367
62
625
156
930
530
346
260
-------------------
395
65
353
453
275
194
34
227
538
14

4、如何选择使用随机数?

首先我们知道java.util.Random的实例不是加密安全的,SecureRandom来获取加密安全的伪随机数生成器,以供对安全敏感的应用程序使用。以上二三可以很明显的发现,我要是知道setSeed值(即时间戳),很明显能把随机数给猜出来。所以不建议使用Random。

5、一些公司随机数选择的案例

可能某些小公司是让使用Random的,使用Random也可以获取到随机数,但是为了程序的安全性,还是使用SecureRandom比较好。
现在有好多公司,明文禁止使用java.util.Random。

6、建议

想要学习技术、想要了解更多,还是建议去大公司,如果你有实力,觉得自己可以,本人可以帮你内推现在流行的互联网公司(百度、滴滴、小米、头条、美团、阿里、腾讯等)!
想要去小公司也可以帮你内推哈!如有需要请联系作者

如何觉得能帮助你,麻烦给作者一份信任,让作者能写下去的理由,不需要你给的太多,只需1块钱即可。

在这里插入图片描述
在这里插入图片描述

如果作者写的有误或者想和作者分享更多,请添加作者微信,邀你进群需收10块钱群费。收钱的目的在于我们来着是学知识的,不是来着观望的

在这里插入图片描述

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

shibai906

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值