一、随机数
java.lang.Math.Random;
调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:
1 packageIO;2 importjava.util.Random;3
4 public classTestRandom {5
6 public static voidmain(String[] args) {7 //案例1
8 System.out.println("Math.random()=" + Math.random());//结果是个double类型的值,区间为[0.0,1.0)
9 int num = (int) (Math.random() * 3); //注意不要写成(int)Math.random()*3,这个结果为0,因为先执行了强制转换
10 System.out.println("num=" +num);11 /**
12 * 输出结果为:13 *14 * Math.random()=0.0290967161328965515 * num=016 *17 */
18 }19 }
二、定时器
(一)获取时间
获取当前系统时间和日期并格式化输出:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class NowString {
public static void main(String[] args) {
// 方法一
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
// 方法二
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
}
}
(二)Timer和TimerTask
JDK中,定时器任务的执行需要两个基本的类:
java.util.Timer;java.util.TimerTask;
运行一个定时任务基本步骤如下:
1、建立一个要执行的任务TimerTask;
2、创建一个Timer实例,通过Timer提供的schedule()方法,将TimerTask加入到定时器Timer中,同时设置执行的规则即可;
(1)Timer中的schedule()有多种重载方法,以适应不同的情况:
a. schedule(TimerTask task, Date time):安排在指定时间执行指定任务;
b. schedule(TimerTask task, Date firsttime, Long period):安排指定的任务在指定时间指定周期重复执行;
c. schedule(TimerTask task, Long delay):安排在指定延迟后执行指定任务;
d. schedule(TimerTask task, Long delay, Long period):安排指定的任务从指定的延迟后开始重复的固定延迟执行;
(2)时间的表示方法:delay或者period的单位是毫秒,所以可以用(60*60*1000表示一小时)、(单位是毫秒3*60*1000为三分钟)
代码实现a:
1 importjava.text.SimpleDateFormat;2 importjava.util.Calendar;3 importjava.util.Timer;4 importjava.util.TimerTask;5
6 public class MyTimerTask extendsTimerTask {7 private Integer cout = 0;8 @Override9 public voidrun() {10 Calendar calendar =Calendar.getInstance(); //getInstance()返回Canlenda的一个通用对象11 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");12 System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
13 System.out.println("NO.1");14 }15 public static voidmain(String[] args) {16 MyTimerTask task = newMyTimerTask();17 Calendar calendar =Calendar.getInstance();18 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");19 System.out.println(format.format(calendar.getTime()));20 calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
21 Timer timer = newTimer();22 timer.schedule(task,calendar.getTime());23
24 }25 }
代码实现d:
1 importjava.util.Timer;2 importjava.util.TimerTask;3
4 public classTest {5 class TestTimerTask extendsTimerTask {6 private int i = 1;7
8 @Override9 public voidrun() {10 System.out.println("定时器第" + i + "次执行!");11 i += 1;12 }13 }14
15 public static voidmain(String[] args) {16 Test test = newTest();17 Timer timer = newTimer();18 timer.schedule(test.new TestTimerTask(), 3000, 2000); //延迟3秒,每隔两秒执行一次run()方法19 }20 }