首页 > 编程语言 >JAVA中的Random类

JAVA中的Random类

时间:2024-08-11 13:58:56浏览次数:17  
标签:JAVA Random System 生成 nextInt 随机 随机数

在 Java 中,`java.util.Random` 类是一个用于生成伪随机数的类。它提供了多种方法来生成不同类型的随机数。

下面是使用 `Random` 类的示例代码,包括注释:

import java.util.Random;

public class RandomExample {
    public static void main(String[] args) {
        // 创建一个 Random 实例
        Random random = new Random();
        
        // 生成一个在 [0, 100) 范围内的随机整数,不包含最大值100
        int randomInt = random.nextInt(100);
        System.out.println("生成的随机整数: " + randomInt);

        // 生成一个在 [1, 6] 范围内的随机整数,包含最小值1和最大值6
        int diceRoll = random.nextInt(6) + 1; // 使用 nextInt(n) 会得到 [0, n) 的范围,所以这里要加1来包含最小值1
        System.out.println("投掷的骰子结果: " + diceRoll);

        // 生成一个随机的布尔值(true 或 false)
        boolean randomBoolean = random.nextBoolean();
        System.out.println("生成的随机布尔值: " + randomBoolean);

        // 设置种子来重复相同的随机序列,例如:总是得到相同的骰子结果
        long seed = System.currentTimeMillis(); // 使用当前时间作为种子的一部分
        Random withSeedRandom = new Random(seed);
        int seededRandomInt = withSeedRandom.nextInt(100);
        System.out.println("使用种子生成的随机整数: " + seededRandomInt);
    }
}


在这个示例中,我们创建了一个 `Random` 的实例并使用它来生成不同类型的随机数。

  • `nextInt()` 方法可以接受一个参数,表示上限(但不包括此值),用于生成指定范围内的整数。如果不提供参数,则默认返回一个 `int` 类型范围内的任意整数。  
  • `nextBoolean()` 方法返回一个随机的布尔值(true 或 false)。  
  • 通过设置种子(如使用当前时间),可以保证每次程序运行时产生相同的伪随机数序列。这在某些需要可复现性的场景下很有用。  
  • 注意:`Random` 生成的不是真正的“随机”数,而是“伪”随机数。这些数是通过某种算法产生的,算法根据初始化时提供的种子来计算下一个数的值。因此如果使用相同的种子两次运行程序的话会得到相同的序列。  

  如果需要生成安全的、不可预测的随机数以用于密码学目的或其他安全相关的应用场景时应该使用 Java 的 `SecureRandom` 类代替 `Random` 类。

标签:JAVA,Random,System,生成,nextInt,随机,随机数
From: https://blog.csdn.net/qa3629723/article/details/141104591

相关文章

  • JAVA中的枚举类
    Java中的枚举类型(Enum)在Java中,枚举(Enum)是一种特殊的类,它用于表示一组固定的常量。枚举类型在Java5(JDK1.5)中被引入,提供了一种类型安全的替代方案,用于替代传统的整型常量(如`int`类型的常量)和字符串常量(`String`)来表示一组固定的值。枚举类型具有以下特点:1.类型安全:枚举类型......
  • Java学习记录(二)
    方法方法分为有参方法和无参方法方法就是行为就是功能无参方法:有参方法:返回值返回值可以分为有返回值和无返回值void表示无返回值return表示返回返回值return不具有打印输出功能例如:重载重载就是方法名一致但是参数列表不一致,重载之后的方法名可以重名使用比如......
  • Java最新面试题2024,Java八股文2024
    一.基础篇1.Java语言特点1、简单易学、有丰富的类库2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)3、与平台无关性(JVM是Java跨平台使用的根本)4、可靠安全5、支持多线程2.面向对象和面向过程的区别面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步......
  • 时尚美妆化妆品电商商城网站-计算机毕设Java|springboot实战项目
    ......
  • Java数组小白版
    一、数组概念一、数组定义数组就是指在计算机内存中开辟的连续存储空间,用于存放程序运行中需要用到的一组相同类型数据的容器。二.数组的声明+数组的长度定义数组时需要确定数组的长度(元素的个数),确定后不能更改;获取数组长度:数组名.length1.格式1(默认初始值)数据类型[]......
  • 499 道 Java 面试题 (附答案):JVM+ 分布式 + 算法 + 锁 +MQ
    Spring如何管理事务的。Spring怎么配置事务(具体说出一些关键的xml元素)。说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。Springmvc中DispatcherServlet初始化过程。netty......
  • Java秋招校招面试
    本人学习两个月Java总结面试找到工作,整理了如下面试题目(只适合找一份非大厂工作!!)(多背多面)祝愿大家找到满意的工作该版本为简洁-以及-大家独立思考只给出题目,大家可以根据题目自行搜索,如不想搜索可以私信我给大家发带答案版本的,本人学习两个月Java总结面试找到工作,整理了如下面试......
  • Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上)(详细教程)
    1.简介前边通过宏哥的讲解和分享想必小伙伴们和童鞋们都已经见过testng框架生成的测试报告,是不是它的样子和长相实在是不敢让大家伙恭维。那么今天宏哥就当一回美容师,由宏哥来给它美美容;当一回外科医生,做一名整形医生。由宏哥来主刀,给它整整形。让她变得丰满、美丽、可爱......
  • JavaL1-07_综合练习
    练习一:需求:    机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。    按照如下规则计算机票的价格:旺季(5~10月)头等舱9折,经济舱8.5折,淡季(11月~来年4月)头等舱7折,经济舱6.5折。代码示例:packagecom.itheima.test;importj......
  • 【Java毕设选题推荐】基于SpringBoot的springbootOA公文发文管理系统
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......