1.使用Math.random()
Math.random()
方法返回一个[0.0, 1.0)范围内的double值。
double random = Math.random();
System.out.println(random);
2.使用java.util.Random类
- Random类提供了丰富的功能来生成各种类型的随机数(包括int、long、float、double),以及指定范围内的随机数。
- 创建Random对象时可以通过构造函数提供种子,如果每次使用相同的种子,则会产生相同的随机序列。
import java.util.Random;
Random rand = new Random(); // 使用默认种子
int randomInt = rand.nextInt(100); // 生成0-99之间的随机整数
System.out.println(randomInt);
3.使用ThreadLocalRandom类 (Java 7及以上版本)
ThreadLocalRandom是Random的一个子类,专为多线程环境设计,它避免了多个线程竞争同一个Random实例的问题。
对于每个线程,ThreadLocalRandom都会保持其自己的随机数发生器。
import java.util.concurrent.ThreadLocalRandom;
int randomInt = ThreadLocalRandom.current().nextInt(0, 100); // 生成0-99之间的随机整数
System.out.println(randomInt);
4.使用SecureRandom类
- SecureRandom提供了加密强度的随机数生成器,适合用于安全相关的应用场合,比如生成密码盐值或密钥。
- 它比普通的Random更慢,但更加难以预测。
import java.security.SecureRandom;
SecureRandom secureRand = new SecureRandom();
int secureRandomInt = secureRand.nextInt(100); // 生成0-99之间的安全随机整数
System.out.println(secureRandomInt);
5.使用第三方库
除了标准库提供的功能外,还可以利用Apache Commons Lang、Guava等第三方库中的工具类来生成随机数。这些库通常提供了额外的功能和更好的性能。