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

java如何生成随机数「建议收藏」java生成随机数有两种方法:1、使用Math方法,Math.random()随机生成一个double类型[0,1),如果想生成1~100的随机数:如:intnum=(int)(Math.random()*100);2、使用Random方法,Randomrandom=newRandom();(中间可以传值,传值后生成的是固定的了,详细的请关注下面星球,有写)。如:rando…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharmprojects可以删除吗_删除pycharm项目

    pycharmprojects可以删除吗_删除pycharm项目1.点击file-&gt;closeproject2.退回到主界面:选择到想要删除的项目,右键选中“removeselectedfrom……”,然后关闭pycharm,去项目位置删除项目文件即可。3.如果此时删除工程文件提示被占用的话,则进入pycharm新建一个其他工程,再删除工程即可。…

    2022年8月29日
    2
  • ubuntu设置apt源_ubuntu修改pip源

    ubuntu设置apt源_ubuntu修改pip源4、lsb_release-a#查看系统内核版本号。

    2022年10月10日
    4
  • PyPDF2 编码问题 PyPDF2.utils.PdfReadError Illegal character in Name Object

    PyPDF2 编码问题 PyPDF2.utils.PdfReadError Illegal character in Name ObjectPyPDF2编码问题PyPDF2.utils.PdfReadErrorIllegalcharacterinNameObject参考资料:https://github.com/mstamy2/PyPDF2/issues/438使用PyPDF2做合并PDF文件时报错如下:Traceback(mostrecentcalllast):File”D:\pr…

    2022年6月23日
    49
  • MYSQL时间戳和一般时间格式相互转化

    MYSQL时间戳和一般时间格式相互转化原文地址:【http://www.2cto.com/database/201208/145029.html】1、UNIX_TIMESTAMP(date)UNIX_TIMESTAMP(date) 如果没有参数调用,返回一个Unix时间戳记(从’1970-01-0100:00:00’GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从’1970-01…

    2022年6月21日
    31
  • 三极管原理

    内容来源为21ic整理,侵权请联系删除。1.基本结构和类型半导体三极管的结构示意图如图1所示。它有两种类型:NPN型和PNP型。包含三层半导体:基区(相连电极称为基极,用B或b表示);发射区(相连电极称为发射极,用E或e表示);集电区(相连电极称为集电极,用C或c表示)。E-B间的PN结称为发射结,C-B间的PN结称为集电结。图1两类三极管示意图及图形符号2.电流分配与放大半导体三极管…

    2022年4月5日
    81
  • 真正的java的四舍五入

    真正的java的四舍五入原文地址:https://blog.csdn.net/qwfylwc/article/details/53939906下面列举让你惊讶的现象,或许你还一直这么用:1、使用Math.round()doubled=1041.735;d=Math.round(d*100)/100.0;//除以100.0而不是100System.out.println(d);…

    2022年7月8日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号