1、Random类
(1)Random类用于生成随机数。每当需要以任意或非系统方式生成数字时,可使用此类;
(2)Math类的random()方法也可以产生随机数,其实Math类的random()方法底层就是使用Random类实现的;
(3)Random类的构造方法有两种重载方式;
构造方法 说明
Random() 创建一个新的随机数生成器
Random(long seed) 使用单个long种子创建一个新的随机数生成器
(4)Random类中定义了很多方法用于获取随机数,最常用的是nextInt()方法,它返回下一个伪随机数,返回值类型是整数类型。返回下一个伪随机数的语法格式如下:
int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。
int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定值n(不包括n)之间均匀分布的int值。
(5)Random类还定义了得到长整型、boolean型、浮点型等伪随机数的方法。
(6)如果用同样一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,那么得到的随机数也是相同的。
关于Random类的相关代码如下:
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
//创建Random类对象
Random random = new Random();
//调用不同的方法,获取不同类型的随机数
boolean result1 =random.nextBoolean();
System.out.println(result1);
int result2 =random.nextInt();
System.out.println(result2);
//利用for循环,获取100个随机数
for(int i =1;i<=100;i++){
//随机数的范围在10以内
int result3 =random.nextInt(10);
System.out.print(result3+" ");
}
}
}
2、日期操作类
(1)java.util包也是Java内置的一个工具包,它包含了集合框架、日期和时间、随机数生成器等各种实用工具类;
(2)java.util包不会默认导入,如果要使用该包中的类,则必须在程序的开始部分进行手工导入;
(3)java.util包中提供的和日期相关的类有Date类、Calendar类和SimpleDateFormat类等。
1)Date类对象用来表示日期和时间,该类提供了一系列操作日期和时间各组成部分的方法。Date类中使用最多的是获取系统当前的日期和时间。
举例:Date date = new Date();这句代码是使用系统当前时间创建日期对象。
2)Calendar类也是用老操作日期和时间的类,它可以看作是Date类的一个增强版。Calendar类提供了一组方法,允许把一个以毫秒为单位的时间转换成年、月、日、小时、分、秒。
可以把Calendar类当做是万年历,默认显示的是当前时间,当然也可以查看其他时间。
Calendar类是抽象类,可以通过静态方法getInstance()获得Calendar类的对象,其实这个获得的对象是它的子类的对象。
Calendar类提供一些方法和静态字段来操作日历,例如:
int get(int field):返回给定日历字段的值;其中YEAR:指示年;MONTH:指示月;DAY_OF_MONTH:指示一个月中的某天;DAY_OF_WEEK:指示一个星期中的某天。
3)DateFormat类用来格式化日期和时间,它在java.text包下,是一个抽象类,提供了多种格式化和解析时间的方法。
格式化是将日期转换成文本,解析是将文本转换成日期格式。使用比较多的是它的子类SimpleDateFormat类。
SimpleDateFormat类是一个以语言环境有关的方式格式化和解析日期的具体类,如“yyyy-MM-dd HH:mm:ss”就是指定的一种日期和时间格式。
(4)在JDK 1.1之间,Date类允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的API不易于实现国际化。从JDK 1.1开始,使用Calendar类实现日趋和时间字段之间的转化,使用DataFormat类来格式化和解析日期字符串。
Date类的相关代码如下:
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
//创建Date对象
Date date = new Date();
System.out.println("此时此刻是:"+date);
//分别获取年 月 日 时 分 秒
int year = date.getYear();
int month = date.getMonth();
int days = date.getDate();
int hours = date.getHours();
int minutes = date.getMinutes();
int seconds =date.getSeconds();
//获取星期,返回值 (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday)
int day =date.getDay();
String[] xingQi = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.println(year+1900+"年"+(month+1)+"月"+days+"日"+" "+hours+":"+minutes+":"+seconds+" "+xingQi[day]);
}
}
Calendar类的相关代码如下:
import java.util.Calendar;
import java.util.Date;
public class CalendarTest {
public static void main(String[] args) {
//static Calendar getInstance()使用默认时区和语言环境获得一个日历。
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
//获取年 月 日 时 分 秒
// int get(int field) 返回给定日历字段的值。
int year = calendar.get(Calendar.YEAR);
System.out.println(year);//年
int month = calendar.get(Calendar.MONTH);
System.out.println(month+1);//月
int date = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(date);//日
int hour=calendar.get(Calendar.HOUR_OF_DAY);//时
int minute = calendar.get(Calendar.MINUTE);//分
int second =calendar.get(Calendar.SECOND);//秒
System.out.println(hour+":"+minute+":"+second);
//输出今天是这一年的第几天
System.out.println("今天是这一年的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");
System.out.println("-----------------------");
//获取当前主机时间并输出
Date date2 =calendar.getTime();
System.out.println(date2);
}
}