一、Math.rand()产生的随机数比Random的更加均匀。
public class Simple1 {
public static void main(String[] args) {
//产生10个100以内的随机整数
for (int i = 0; i < 10; i++) {
Random rand = new Random();
int a =rand.nextInt(100);
System.out.print(a+" ");
}
System.out.println();
//使用Math.random()产生随机数
for(int j=0;j<10;j++){
int a =(int) (Math.random()*100);
System.out.println(a);
}
}
}
Random
是一个在 Java 中用于生成伪随机数的工具类。以下是一些 Random
类中常用的方法:
-
nextInt(int bound):生成一个介于 0(包括)和指定值(不包括)之间的随机整数。
Random rand = new Random(); | |
int randomNum = rand.nextInt(10); // 生成 0-9 的随机整数 |
-
nextInt(int start, int end):生成一个介于
start
(包括)和end
(不包括)之间的随机整数。
Random rand = new Random(); | |
int randomNum = rand.nextInt(5, 10); // 生成 5-9 的随机整数 |
-
nextFloat():生成一个随机浮点数。
-
nextDouble():生成一个随机双精度浮点数。
-
nextBoolean():生成一个随机布尔值。
-
nextLong():生成一个随机长整型数。
-
nextBytes(byte[] bytes):填充字节数组,使其包含随机字节。
-
setSeed(long seed):设置随机数生成器的种子。如果种子相同,那么每次生成的随机数序列也会相同。
Random rand = new Random(); | |
rand.setSeed(12345); // 设置种子为 12345 |
注意:Random
类生成的随机数序列是伪随机数,也就是说,生成的随机数并不是真正的随机,而是通过一种算法计算出来的。因此,对于需要高度安全的随机数的情况(例如加密),应该使用 java.security.SecureRandom
类。
二、java常用工具类
Java 提供了许多常用的工具类,这些工具类可以帮助开发人员更高效地编写代码。以下是一些常用的 Java 工具类:
- Apache Commons 工具包:Apache Commons 是一组独立的、可重用的 Java 组件,提供了许多实用的工具类,如字符串操作、文件操作、日期处理等。
- Java 并发包(java.util.concurrent):Java 并发包提供了用于多线程编程的工具类,如线程池、锁、并发集合等。
- Java 日期时间包(java.time):Java 日期时间包提供了用于日期和时间操作的类,如 LocalDate、LocalTime、ZonedDateTime 等。
- Java 输入输出包(java.io 和 java.nio):Java 输入输出包提供了用于文件读写、网络通信等操作的类,如 FileReader、BufferedReader、FileOutputStream、BufferedWriter 等。
- Java 集合框架(java.util):Java 集合框架提供了用于集合操作的类和接口,如 List、Set、Map 等。
- Java 正则表达式包(java.util.regex):Java 正则表达式包提供了用于正则表达式操作的类和接口,如 Pattern、Matcher 等。
- Java 系统属性(java.lang.System):Java 系统属性提供了访问系统属性和环境变量的方法,如 System.getProperty() 和 System.getenv()。
- Java 反射(java.lang.reflect):Java 反射提供了用于在运行时访问类、接口、字段和方法的信息的方法,以及调用方法和修改字段值的方法。
这些工具类可以帮助开发人员快速编写高质量的 Java 代码,提高开发效率。