java如何生成随机数
Java生成随机数的几种方法
使用java.util.Random类
Random类是Java中最常用的生成随机数的方式,可以生成整数、浮点数、布尔值等不同类型的随机数。
Random random = new Random();
int randomInt = random.nextInt(); // 生成一个随机整数
int randomIntRange = random.nextInt(100); // 生成0-99之间的随机整数
double randomDouble = random.nextDouble(); // 生成0.0-1.0之间的随机浮点数
boolean randomBoolean = random.nextBoolean(); // 生成随机布尔值
使用Math.random()方法
Math.random()方法返回一个0.0到1.0之间的double类型伪随机数,如果需要整数可以通过乘以范围并强制转换。
double randomDouble = Math.random(); // 生成0.0-1.0之间的随机浮点数
int randomInt = (int)(Math.random() * 100); // 生成0-99之间的随机整数
使用ThreadLocalRandom类(Java 7+)
ThreadLocalRandom是多线程环境下更高效的随机数生成器,用法与Random类似但性能更好。
int randomInt = ThreadLocalRandom.current().nextInt(100); // 生成0-99之间的随机整数
double randomDouble = ThreadLocalRandom.current().nextDouble(); // 生成0.0-1.0之间的随机浮点数
使用SecureRandom类
SecureRandom提供加密强度更高的随机数生成,适合安全敏感的场景。
SecureRandom secureRandom = new SecureRandom();
int secureRandomInt = secureRandom.nextInt(100); // 生成0-99之间的安全随机整数
byte[] bytes = new byte[16];
secureRandom.nextBytes(bytes); // 生成随机字节数组
Java 8的Random类新方法
Java 8为Random类新增了生成随机流的方法,可以方便地生成一系列随机数。
Random random = new Random();
IntStream randomInts = random.ints(5, 0, 100); // 生成5个0-99之间的随机整数流
randomInts.forEach(System.out::println);
注意事项
- 对于普通应用,Random和ThreadLocalRandom足够使用
- 安全相关应用应使用SecureRandom
- Math.random()内部也是使用Random实现的
- 多线程环境下优先使用ThreadLocalRandom







