Java面向对象-常用类(Random类)

常用类-Random类

1 创建Random类对象

此类用于生成随机数:

Random(); 创建一个新的随机数生成器

Random(long seed);种子数(重点理解工作原理,什么是伪随机数)

2 Random类常用方法

package com.qf.random_class;import java.util.Random;public class Test01 {/*** 知识点:Random - 随机类*/public static void main(String[] args) {Random ran = new Random();System.out.println("随机出int类型范围里的数字:" + ran.nextInt());System.out.println("随机出double类型范围里的数字:" + ran.nextDouble());System.out.println("随机出boolean类型范围里的数字:" + ran.nextBoolean());System.out.println("随机出0~9的int数字:" + ran.nextInt(10));//0~9}
}

3 案例:点名器

package com.qf.random_class;import java.util.Random;public class Test02 {/*** 知识点:Random - 随机类* * 案例:点名器*/public static void main(String[] args) {String[] names = {"小宇","小亮","小丹","小蒲","小飞","小康","小升","小怡"};Random ran = new Random();int index = ran.nextInt(names.length);System.out.println(names[index]);}
}

4 Random的种子数

package com.qf.random_class;import java.util.Random;public class Test03 {/*** 知识点:Random的种子数*/public static void main(String[] args) {//注意:种子数固定,随机出的数据也是固定的Random ran = new Random(100);System.out.println(ran.nextInt());System.out.println(ran.nextInt(10));System.out.println("---------------------------");MyRandom myRandom = new MyRandom();System.out.println(myRandom.nextInt());System.out.println(myRandom.nextInt(10));}
}

seed(种子数底层理解)

package com.qf.random_class;public class MyRandom {private long seed;public MyRandom() {// System.nanoTime()返回的是纳秒级精度的时间,以此作为种子更能保证生成数字的随机性。.this(seedUniquifier() ^ System.nanoTime());}private static long seedUniquifier() {for (;;) {long current = System.currentTimeMillis();long next = current * 181783497276652981L;if (next%3==0 || next%12==0 || next%17==0)return next;}}public MyRandom(long seed) {this.seed = seed;}public int nextInt(){return (int) seed;}public int nextInt(int i){return Math.abs((int) seed) % i;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode刷题之HOT100之无重复字符的最长子串

今天搬工位了,研二的师兄师姐在这儿坐了半年,现在轮到我么们了。做题先 1、题目描述 2、逻辑分析 题目要求很明确,就是要找出无重复字符的最长。怎么求解呢?题解给出了滑动窗口的算法方案。 3、代码演示 public int lengthOfLo…

【管理咨询宝藏114】贝恩为某知名化妆品战略规划方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏114】贝恩为某知名化妆品战略…

【软件设计师】——8.结构化与数据流图

目录 8.1 结构化分析 8.2 结构化设计 8.3 数据流图DFD 8.4 数据字典 8.1 结构化分析 结构化分析是面向数据流进行需求分析的方法,采用结构化方法进行系统分析时,根据分解与抽象原则,按照系统中数据处理的流程,用(数…

Hadoop大数的一些知识点分享给大家~~~~

查看zookeeper服务状态的命令是哪个? 要查看ZooKeeper服务的状态,可以使用zkServer.sh脚本的status命令。这个脚本通常位于ZooKeeper的安装目录的bin子目录中。以下是具体的命令: sh zkServer.sh status zkServer.sh status 当你运行这个命…

【Linux环境搭建实战手册】:打造高效开发空间的秘籍

文章目录 🚀Linux环境搭建💥1. 设备要求❤️2. 了解虚拟机🚀3. 安装VMware🌈4. 终端基础信息解读 🚀Linux环境搭建 💥1. 设备要求 处理器(CPU):至少具有1 GHz的处理能力&…

微信小程序处理点击微信订阅消息通知到二级页面,右上角会出现到初始化页面

1.页面传参 正常跳转到详情页 wx.navigateTo({url: "/pages/use/OA/index/index",}) 订阅消息通知跳转到详情页 wx.reLaunch({url: /pages/use/OA/index/index?taptrue, }) 2.二级页面进行判断 // 获取路由参数,判断是否是订阅消息进来的 订阅消息进来…

VSCode中snippets(代码模板)的使用

首先安装Vue VSCode Snippets,在组件库中搜索并安装。 然后打开插件文件夹 文件夹名是 "作者名.vscode-插件名-版本号"组成的. C:\Users\Administrator\.vscode\extensions\sdras.vue-vscode-snippets-3.1.1\snippets 打开vue.json "prefix"…

JAVA面试题大全(十七)

1、redis 是什么?都有哪些使用场景? Redis是一个开源的,使用ANSI C语言编写,支持网络,可基于内存,可持久化的日志型,key-value数据库。 数据高并发的读写海量数据的读写对扩展性要求高的数据 …

【机器学习】SUTRA引领多语言处理

在人工智能的浪潮中,自然语言处理(NLP)技术一直是备受瞩目的焦点。随着全球化和信息时代的到来,多语言处理能力成为了评估NLP技术优劣的重要标准。近期,一款名为SUTRA的多语言大型语言模型架构引起了业界的广泛关注。它…

【Linux】线程操作

文章目录 前言一、线程相关操作函数1. pthread_create2. pthread_join3. pthread_exit4. pthread_cancel5. pthread_detach6. 示例代码 前言 在 Linux 中并不存在真正意义上的线程, 而是通过复用进程的结构来实现的, 叫做轻量级进程. 线程是一个进程内部的一个执行流, 而一个进…

521源码-免费游戏源码下载-闯梦江湖Q萌复古全网通手游服务端H5全攻略

闯梦江湖H5:Q萌复古全网通手游服务端全攻略 一、概述 闯梦江湖H5 是一款结合Q萌画风与复古情怀的全网通H5手游。我们为您提供了最新打包的Windows服务端,并附带了通用视频架设教程和GM网页授权后台工具,让您轻松搭建并管理自己的游戏世界。 …

40、Flink 的窗口延迟数据处理(Allowed Lateness)详解

Allowed Lateness a)概述 在使用 event-time 窗口时,数据可能会迟到,即 Flink 用来追踪 event-time 进展的 watermark 已经越过了窗口结束的 timestamp 后,数据才到达。 默认,watermark 一旦越过窗口结束的 timesta…

Kubernetes中的节点选择方法

在Kubernetes集群中,节点选择是一个重要的环节,它决定了Pod将被调度到哪个节点上运行。Kubernetes提供了多种节点选择的方法,以满足不同的部署需求和资源优化。本文将介绍Kubernetes中的几种节点选择方法,并附带相关代码示例。 目…

为什么SQL执行计划未使用创建的索引呢?MySQL是如何选择索引的?

在实际工作中,大家可能会遇到这个问题:MySQL并没有按照自己的预想来选择索引,比如创建了索引但是选择了全表扫描,这肯定是 MySQL 数据库的 Bug,或者是索引出错了。真相真的是MySQL出错了吗?当然不是。主要是因为索引中的数据出了错。 为什么这么说呢?要理解这个问题,要…

python技巧梳理

背景 在开发中,经常会遇到,同时存在多个值,依次判断上述值,选择第一个非空、True的值作为整个表达式的值进行返回,这个时候会用到or这个关键词,下面讲一下用法。 方法 value1 None value2 0 value3 H…

斯洛文尼亚普利雅玛城堡:吉尼斯世界纪录认证的世界最大溶洞城堡

除了著名的波斯托伊纳溶洞(Postojna Cave),普利雅玛城堡(Predjama Castle)也是波斯托伊纳洞穴公园(Postojna Cave Park)不容错过的景点之一。这座城堡坐落在斯洛文尼亚(Slovenia&…

什么是数字化转型?企业数字化转型的核心重点有哪些?

一、什么才是真正的数字化转型? 虽然很多企业管理者已经就企业数字化逐步达成了较为广泛的共识,但根据业界的调查结论,不少企业管理者仍然缺乏紧迫感和行动力,反应迟缓。 导致这些情况的本质原因:主要还是因为企业管…

【编译原理】LR(0)分析

一、实验目的 LR(0)分析法是一种移进归约过程,能根据当前分析栈中的符号串,同时也不用向右查看输入串的符号就可唯一确定分析器的动作。通过对给定的文法构造LR(0)分析表和实现某个符号串的分析掌握LR(0)分析法的基本思想。 二、实验要求 实现LR(0)分…

用(华为)三层交换技术解决不同vlan间通信问题

用三层交换技术解决不同vlan间通信问题 一、网络拓扑: 二、配置思路:自下而上配置 1.PC端配置基本IP信息包括网关 2.接入交换机S1上划分三个vlan,分别是VLAN 10 VLAN 20 VLAN 30 并且将对应的接口加入指定的vlan 3.给接入交换机配置trunk链路…

IT技术 | 电脑蓝屏修复记录DRIVER_IRQL_NOT_LESS_OR_EQUAL

我的台式机是iMac 2015年的,硬盘是机械的,时间久了运行越来越慢。后来对苹果系统失去了兴趣,想换回windows,且想换固态硬盘,就使用winToGo 搞了双系统,在USB外接移动固态硬盘上安装了win10系统。 最近&…