前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java如何生成随机数「建议收藏」

java如何生成随机数「建议收藏」

作者头像
全栈程序员站长
发布2022-09-17 13:50:45
发布2022-09-17 13:50:45
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
如:int num = (int)(Math.random()*100);

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

代码语言:javascript
代码运行次数:0
运行
复制
	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));
        }

    }

结果如下:

代码语言:javascript
代码运行次数:0
运行
复制
208
572
116
475
500
574
641
166
727
670
------------------
208
572
116
475
500
574
641
166
727
670

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

代码语言:javascript
代码运行次数:0
运行
复制
	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));
        }

    }

结果如下:

代码语言:javascript
代码运行次数:0
运行
复制
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。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158821.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、使用Math方法,Math.random()随机生成一个double类型[0,1),如果想生成1~100的随机数:
  • 2、使用Random方法生成随机数
  • 3、使用SecureRandom生成随机数,代码如下:
  • 4、如何选择使用随机数?
  • 5、一些公司随机数选择的案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档