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。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 服务器支持p2v,菜鸟必知 实施P2V迁移成功的五大秘诀

    服务器支持p2v,菜鸟必知 实施P2V迁移成功的五大秘诀虚拟服务器迁移工具对操作系统、应用和设置进行镜像复制,并转换成虚拟硬盘文件(适用于MicrosoftHyper-V和CitrixXenServer来说)或者虚拟机磁盘格式文件(适用于VMware)。然后P2V转换工具自动诸如虚拟硬件驱动,并启动虚拟机运转起来。多数P2V迁移直截了当,但也会偶尔发生问题。下面,GregShields将分享五条让P2V迁移成功的技巧。一、注意已安装的OEM系统当…

  • 自定义web框架

    HTTP协议HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送

  • 计算机错误代码0X000000be,Win7系统出现蓝屏代码0x000000BE的解决方法「建议收藏」

    计算机错误代码0X000000be,Win7系统出现蓝屏代码0x000000BE的解决方法「建议收藏」蓝屏是我们日常使用电脑的时候经常会碰到的故障,这不就有很多win732位系统用户反映说电脑出现蓝屏错误代码0x000000BE,该怎么解决这样的问题呢,接下来给大家讲解一下Win7系统出现蓝屏代码0x000000BE的解决方法吧。原因分析:0x000000BE错误表示硬件设备的驱动程序试图向只读内存错误地写入数据。这个错误一般是因为硬件设备驱动程序存在BUG或安装不正确引起的。解决方法:按开机按…

  • spring cloud和dubbo的区别,rpc对比. 阿里云

    spring cloud和dubbo的区别,rpc对比. 阿里云总览Dubbo的定位始终是一款RPC框架,而SpringCloud的目标是微服务架构下的一站式解决方案。Dubbo已经适配到SpringCloud生态,比如作为SpringCloud的二进制通信方案来发挥Dubbo的性能优势,Dubbo通过模块化以及对HTTP的支持适配到SpringCloud。 alibaba service…

  • ideaIU-2021.12.13 激活码【中文破解版】

    (ideaIU-2021.12.13 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 线程池不使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式[通俗易懂]

    线程池不使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式

发表回复

您的电子邮箱地址不会被公开。

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