Java如何生成随机数?要不要了解一下!

这篇具有很好参考价值的文章主要介绍了Java如何生成随机数?要不要了解一下!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们在学习 Java 基础时就知道可以生成随机数,可以为我们枯燥的学习增加那么一丢丢的乐趣。本文就来介绍 Java 随机数。

一、Random类介绍

在 Java 中使用 Random 工具类来生成随机数,该类在 java.util 包下,在 JDK1.0 版本就存在了。Random 单词本身就是随机、随意、任意的意思。Random 是一个普通类,所以在使用时需要创建 Random 对象,在调用其提供的方法。

public class Random implements java.io.Serializable {}

Random 类提供了诸多方法,如下图:
Java如何生成随机数?要不要了解一下!

二、Random类生成随机数

1.生成随机数

在 Java 中,可以使用 java.util.Random 类来生成随机数。 Random 类提供了多个方法来生成不同种类的随机数,例如 nextInt()nextDouble() 等。

我们这里演示如何生成一个介于0到9之间的随机整数:

import java.util.Random;

public class RandomTest {
    public static void main(String[] args) {
        // 创建Random实例
        Random random = new Random();
        // 生成0到9之间的随机数
        int randomNum = random.nextInt(10); 
        System.out.println(randomNum);
    }
}

在上面的示例代码中,首先创建了一个 Random 对象,然后使用 nextInt() 方法生成一个介于0到9之间的随机整数,并将结果打印到控制台上。

2.nextInt()方法

nextInt(int bound) 方法是 Random 类的一个实例方法,它用于生成一个介于0(包括0)和指定值(不包括该值)之间的随机整数。

我们之前使用 nextInt(int bound) 方法生成 0-9 之间的随机数:

Random random = new Random();
int randomNum = random.nextInt(10);
System.out.println(randomNum);

代码中使用 Random 类的默认构造函数创建一个随机数生成器对象,然后调用 nextInt(int bound) 方法生成介于 0(包括 0)和 10(不包括 10)之间的随机整数(多次提及且加粗),最后将结果存储到 randomNum 变量中并打印到控制台上。

这个方法的实现原理是根据随机数生成器的内部状态生成随机数。如果指定的 bound 参数是正数,则生成的随机数即为 0 到 bound 之间的某个整数。如果 bound 是负数或者 0,则会抛出 IllegalArgumentException 异常。需要注意的是,生成的随机数是伪随机数,其实际上是一个确定性的函数,但是它的表现看上去是随机的。

对于 Random.nextInt(int bound) 方法,需要特别注意 bound 参数的取值范围。如果生成的随机数不是 0 到 bound 之间,那么就可能会对一些应用产生负面影响,比如在密码学应用中可能会导致漏洞。因此,在使用该方法时,需要仔细检查 bound 参数的取值范围,并对其进行适当的限制。

那么除了 nextInt() 方法,还有 nextLong()nextBoolean()nextFloat()nextDouble() 等。

三、使用场景

Java 随机数生成器可以在很多场景下使用,比如在游戏开发中,可以随机生成怪物、地图、道具等;如果涉及密码,可以在加密过程中需要生成随机数,如在生成密钥的时候生成长度随机的盐值;也可以进行测试和演练:可以使用随机数生成器来生产测试数据、观测数据等等;

总之,随机数的使用非常广泛,任何需要模拟随机的场景都可以使用 Java 提供的随机数生成器生成随机数。

我们大都有选择困难症,比如不知道午饭吃什么?很头疼!那就让上天来决定吧!我们使用 Java 随机数来随意抽取或是决定午饭。

import java.util.Random;

public class RandomLunch {
    public static void main(String[] args) {
        String[] foods = {"汉堡", "炸鸡", "披萨", "烤肉", "牛肉面", "米线", "酸菜鱼", "煲仔饭", "火锅", "小笼包"}; //可以选择的午餐品种
        Random random = new Random();
        int index = random.nextInt(foods.length); // 生成0到可选菜品数量之间的一个随机整数
        String lunch = foods[index]; // 根据随机数选定菜品
        System.out.println("午饭吃" + lunch);
    }
}

上面的代码中,首先定义了一个数组中,存储了可以选择的午餐品种。然后使用 java.util.Random 类创建一个随机数生成器对象,使用 nextInt(int bound) 方法生成一个介于 0 和可选菜品数量之间的随机数。最后,使用这个随机数从菜品数组中选择一个菜品,将其存储到字符串变量 lunch 中,并输出午餐的选择结果。

在实际开发中,可以将类似的代码集成到提供菜品选择功能的系统中,方便办公室的小伙伴们快速决定午餐。

四、官方提示

java.util.Random 的实例是线程安全的。但是,跨线程并发使用同一个 java.util.Random 实例可能会遇到争用,从而导致性能下降。考虑在多线程设计中使用 java.util.concurrent.ThreadLocalRandom

java.util.Random 的实例不是加密安全的。请考虑使用 java.security.SecureRandom 来获得加密安全的伪随机数生成器,以供对安全性敏感的应用程序使用。

总结

Java 随机数的使用场景还是很多的,所以我们要对其进行掌握,本文对 Java 生成随机数的类 Random 进行了简单介绍,如果想深入了解,要查看其源码,去实操,去探究。


关注公众号:编程火箭车
我们定期发布编程相关的文章、资讯、活动等内容。帮助编程爱好者、初学者或初级程序员快速入门、打牢基础。欢迎大家关注,和我们一起探索编程的精彩世界。文章来源地址https://www.toymoban.com/news/detail-457441.html

到了这里,关于Java如何生成随机数?要不要了解一下!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java生成指定区间的随机数

    随机数 例:编写程序随机生成k个位于[m,n]区间的整数,对这k个数据进行升序排序并输出。 在使用Java生成随机数的时候,有一些注意事项需要注意,下面是一些常见的问题和解决方案: 1. 生成随机数时,应该使用Java的 Random 类,而不是 Math.random() 方法。原因是, Math.rando

    2024年02月10日
    浏览(29)
  • Java jdk8生成随机数

    目录 Jdk8生成随机数 Jdk8以前 在Java 8中,可以使用ThreadLocalRandom类来生成随机数。相比于早期的Random类,ThreadLocalRandom类可以更好地支持多线程应用,性能也更优。下面是使用ThreadLocalRandom类生成随机数的几种方法: 生成一个0到n之间的随机整数(不包含n): 生成一个范围在

    2024年02月12日
    浏览(31)
  • 你知道如何生成随机数吗?(超详细附图)

    目录 😉前言 🍸如何用C语言实现随机数 🍹随机数原理 🍹rand函数(生成随机数) 🍹srand(避免每次运行程序产生的随机数都相同) 🍹时间戳 🥤time函数 🍸来个小小项目 🍸代码实现 🍹1.漂亮的主页 🍹2.游戏开关 🍹3.game()函数的代码实现。 🍹4.完整代码 手把手教你

    2024年02月08日
    浏览(25)
  • java生成4位不重复的随机数

    2024年02月12日
    浏览(32)
  • 使用java.security.SecureRandom安全生成随机数和随机字符串工具类

            在Java中,可以使用java.security.SecureRandom和java.util.Random类来生成随机数,但是它们之间有以下区别:         1、随机性强度: SecureRandom 类提供了更高的随机性强度。它使用了更安全的算法和种子生成器,以提供更高质量的随机数。这对于需要高度安全性的应用程

    2024年04月26日
    浏览(31)
  • 你知道C语言中随机数是如何生成的吗~?

    目录 1.你听说过函数rand的吗? 2.引入srand函数~ 3.time函数的使用~ 4.随机数的实现! 5. 如何控制随机数的范围呢~ 6.这时候我们就可以写出一些比较有趣的代码啦~  7.对我们说的一些话~                            不是每个人都能做自己想做的事,成为自己想成为的人。  

    2024年02月22日
    浏览(34)
  • 用Java生成N个不重复的随机数,3种实例

    Java实现生成n个不重复的随机数可以使用Java中的Random类和Set集合来完成 具体代码如下: 上述代码中,使用了一个while循环来生成n个不重复的随机数。在每次循环中,先生成一个范围在1到max之间的随机整数,然后将其加入Set集合中,由于Set集合不允许元素重复,所以会自动去

    2024年02月15日
    浏览(27)
  • Unity 中的随机数的基础常用的随机数生成方法

    在 Unity 中,可以使用 Random 类来生成随机数。以下是一些常用的随机数生成方法: Random.Range(min, max):生成一个在[min, max)范围内的随机整数。 Random.value:生成一个在[0, 1)范围内的随机浮点数。 Random.insideUnitCircle:生成一个在单位圆内的随机二维向量。 Random.insideUnitSphere:生成

    2024年02月20日
    浏览(41)
  • JS - 生成随机数的方法汇总(不同范围、类型的随机数)

    (1)使用 random() 方法可以返回一个介于 0 ~ 1 之间的伪随机数(包括 0,不包括 1)。 (2)下面是一个测试样例 (1)这种最简单,因为和 random 的特点保持一致。只需使用如下公式即可: (2)比如下面生成 [10,15) 范围内的随机浮点数。 因为 random 的特点,要取得这几个区间

    2023年04月08日
    浏览(37)
  • haiku生成随机数

    Haiku 遵循 JAX 的设计,生成的随机数是两个元素组成的列表。其中第一个元素是用于生成伪随机数的状态,第二个元素是用于分发密钥的子键。两个元素分别用于状态和子键,确保在分布式计算或并行计算中,多个随机数生成器的状态可以在一定程度上相互影响,从而提高随

    2024年01月20日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包