当前位置: 首页 > wzjs >正文

制作网站得多少钱网站权重一般有几个等级

制作网站得多少钱,网站权重一般有几个等级,wordpress 5.2.2安装要求,怎样做运营一个网站摘要:本文针对Java初学者,详细讲解如何生成随机数并存储到数组中,深度对比Math.random()与Random类的核心区别,附完整代码示例和性能优化技巧。掌握这些知识,轻松应对实际开发需求! 目录 一、问题背景&am…

摘要:本文针对Java初学者,详细讲解如何生成随机数并存储到数组中,深度对比Math.random()Random类的核心区别,附完整代码示例和性能优化技巧。掌握这些知识,轻松应对实际开发需求!

目录

一、问题背景:为什么需要生成随机数组?

二、实现步骤:生成随机数组的两种方法

方法1:使用Math.random()

三、深度对比:Math.random()  vs  Random类

1. 功能对比表

2. 核心差异详解

1. 灵活性

2. 线程安全

3. 种子控制

四、性能优化与最佳实践

1. 高并发场景

2. 范围计算公式

3. 最佳实践场景

五、总结与思考

关键结论

拓展思考


一、问题背景:为什么需要生成随机数组?

在开发中,随机数广泛应用于游戏抽奖、测试数据生成、密码学等场景。例如:

  • 生成10个1~100的随机整数用于抽奖。

  • 创建随机字符串作为临时密码。

  • 填充测试数据验证算法性能。

核心需求:如何高效生成可控范围的随机数并存储到数组中?
痛点Math.random()Random类如何选择?线程安全如何处理?

二、实现步骤:生成随机数组的两种方法

方法1:使用Math.random()

public class RandomArrayDemo1 {public static void main(String[] args) {int[] numbers = new int[10]; // 创建长度为10的数组// 填充1~100的随机整数for (int i = 0; i < numbers.length; i++) {numbers[i] = (int)(Math.random() * 100 + 1);}System.out.println("随机数组: " + Arrays.toString(numbers));}
}

输出示例
[34, 89, 5, 72, 93, 16, 61, 45, 28, 77]


方法2:使用Random

import java.util.Random;public class RandomArrayDemo2 {public static void main(String[] args) {Random random = new Random();int[] numbers = new int[10];for (int i = 0; i < numbers.length; i++) {numbers[i] = random.nextInt(100) + 1; // [1, 100]}System.out.println("随机数组: " + Arrays.toString(numbers));}
}

三、深度对比:Math.random()  vs  Random类

1. 功能对比表

特性Math.random()Random 类
调用方式静态方法(直接调用)需实例化对象
返回值类型double([0.0, 1.0))intdoubleboolean 等
线程安全非线程安全(共享实例)非线程安全(可用ThreadLocalRandom
范围控制需手动计算直接通过方法参数控制
种子设置不支持支持(构造函数设置)

2. 核心差异详解

1. 灵活性
  • Math.random()
    只能生成double类型,需手动转换:

    int num = (int)(Math.random() * (max - min + 1) + min);
  • Random
    直接生成多种类型:

    random.nextInt(max);          // [0, max)
    random.nextDouble();          // [0.0, 1.0)
    random.nextBoolean();         // true/false
2. 线程安全
  • Math.random()
    内部使用静态Random实例,多线程下可能引发性能问题。

  • Random类优化方案

    • 单线程:new Random()

    • 多线程:ThreadLocalRandom(Java 7+)

      // 多线程安全示例
      int num = ThreadLocalRandom.current().nextInt(1, 101);
3. 种子控制
  • Random类的可重复性    设置固定种子可生成相同随机序列(适合测试):
    Random random = new Random(12345);
    System.out.println(random.nextInt(100)); // 始终输出相同值

    四、性能优化与最佳实践

    1. 高并发场景

  • 避免使用Math.random()
    改用ThreadLocalRandom

    // 生成[1, 100]的线程安全随机数
    int num = ThreadLocalRandom.current().nextInt(1, 101);

    2. 范围计算公式

  • 通用公式(生成[min, max]的整数):

    // Math.random()
    int num = (int)(Math.random() * (max - min + 1) + min);// Random类
    int num = random.nextInt(max - min + 1) + min;

    3. 最佳实践场景

    场景推荐方案
    简单快速生成小数Math.random()
    需要整数/布尔值Random
    多线程高并发ThreadLocalRandom
    需要可重复测试数据Random + 固定种子

    五、总结与思考

    关键结论

  • 优先选择Random:功能更灵活,支持类型和范围控制。

  • 多线程必用ThreadLocalRandom:避免性能瓶颈。

  • 测试数据固定种子:保证结果可复现。

  • 如何生成不重复的随机数数组?

你在实际项目中遇到过哪些随机数生成的坑?欢迎评论区留言讨论!🔥

http://www.dtcms.com/wzjs/430969.html

相关文章:

  • 做网站开发哪里可以接单怎么看关键词的搜索量
  • 技术支持:淄博网站建设谷歌seo技巧
  • 网站设计开发维护网站优化塔山双喜
  • 建站流程网站上线厦门网站seo哪家好
  • 个体户可以做企业网站最新新闻热点大事件
  • 网站托管工作室日照网络推广公司
  • 网站外链哪里做seo广告优化
  • 做移动网站优化快有没有专门做营销的公司
  • 跨境电商热销产品排行济南seo外包服务
  • 云梦网络 网站模板网页制作的基本步骤
  • 温州建站费用广州新塘网站seo优化
  • 修改wordpress默认的登陆地址关键词优化排名费用
  • 东莞网站建设服务商网络推广教程
  • win2012 iis配置网站百度搜索app
  • wordpress邀请码插件什么叫做seo
  • 上海公安门户网站网址安徽网站关键字优化
  • 龙岗 网站建设深圳信科搜索引擎seo关键词优化方法
  • 域名注册好了怎么做网站网址注册查询
  • 微小店网站建设多少钱seo怎么优化步骤
  • 软件开发专业就业前景如何seo自学网app
  • 一级做爰片软件网站微商软文范例大全100
  • wordpress变成中文上海单个关键词优化
  • 什么网站做美食最好最专业广东广州重大新闻
  • 科技网页模板seo培训资料
  • 网站建设分金手指专业十六河南品牌网站建设
  • 网站建设研究背景百度关键词查询排名
  • 党风廉政建设 杂志网站搜索引擎的营销方法有哪些
  • wordpress做的视听网站河南做网站的
  • 哈尔滨模板网站建设新站如何快速收录
  • 天津网站建设基本流程图2023第二波疫情已经到来了吗