Java常用类中随机数讲解与实践

简介: Java常用类中随机数讲解与实践

项目中时长用到不同长度的随机数,这里简要说明一些方法。

【1】Random

代码实例一如下:

Random random = new Random();
int nextInt = random.nextInt();

其nextInt()的JavaDoc如下:

Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence. 
The general contract of nextInt is that one int value is pseudorandomly generated and returned. 
All 2 32(The 32 square of 2) possible int values are produced with (approximately) equal probability. 

从随机数生成序列中返回下一个伪随机,均匀分布的int 值。2的32次方在内的int值返回的概率是相等的。


代码实例一如下:

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

其nextInt(10)的JavaDoc如下:

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. 
The general contract of nextInt is that one int value in the specified range is pseudorandomly generated and returned.
 All bound possible int values are produced with (approximately) equal probability.

主要意思 : 返回 0-指定值区间的一个int 值 ,用区间表示即 [0 , end)。如nextInt(10)返回区间 [0 , 10)。


举例如返回六位随机数:

Random random = new Random();
int nextInt2 = random.nextInt(10)+100000;

这样返回的相同数概率太大了,换成如下方法:

Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for(int i=1;i<7;i++){
  int nextInt2 = random.nextInt(10);
  stringBuilder.append(String.valueOf(nextInt2));
}
System.out.println(stringBuilder.toString());

或者试试如下方法:

String sources = "0123456789"; // 加上一些字母,就可以生成pc站的验证码了  
Random rand = new Random();  
StringBuffer flag = new StringBuffer();  
for (int j = 0; j < 6; j++){  
    flag.append(String.valueOf(sources.charAt(rand.nextInt(9))));  
}  
System.out.println(flag.toString());  

【2】Math.random()

代码实例一如下:

double random = Math.random();
System.out.println(random);

其random()的Javadoc如下:

Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range. 

主要意思: 从指定范围大约均匀分布的值中伪随机选择一个返回,该值为区间在[0.0 , 1.0)之间的double值。

举例如返回六位随机数:

int a=(int) ((Math.random()*9+1)*100000);
System.out.println(a);
目录
相关文章
|
15天前
|
设计模式 安全 Java
Java编程中的单例模式:理解与实践
【10月更文挑战第31天】在Java的世界里,单例模式是一种优雅的解决方案,它确保一个类只有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的实现方式、使用场景及其优缺点,同时提供代码示例以加深理解。无论你是Java新手还是有经验的开发者,掌握单例模式都将是你技能库中的宝贵财富。
22 2
|
19天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
41 17
|
12天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
|
8天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
10天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
13天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
27 3
|
12天前
|
Java UED
Java中的多线程编程基础与实践
【10月更文挑战第35天】在Java的世界中,多线程是提升应用性能和响应性的利器。本文将深入浅出地介绍如何在Java中创建和管理线程,以及如何利用同步机制确保数据一致性。我们将从简单的“Hello, World!”线程示例出发,逐步探索线程池的高效使用,并讨论常见的多线程问题。无论你是Java新手还是希望深化理解,这篇文章都将为你打开多线程的大门。
|
14天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
55 4
|
15天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
33 2
|
19天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
下一篇
无影云桌面