Java随机数与定时器

一、随机数

java.lang.Math.Random;

  调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:

 1 package IO;
 2 import java.util.Random;
 3 
 4 public class TestRandom {
 5     
 6     public static void main(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.02909671613289655
15          * num=0
16          * 
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 import java.text.SimpleDateFormat;
 2 import java.util.Calendar;
 3 import java.util.Timer;
 4 import java.util.TimerTask;
 5  
 6 public class MyTimerTask extends TimerTask {
 7     private Integer cout = 0;
 8     @Override
 9     public void run() {
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 void main(String[] args) { 16 MyTimerTask task = new MyTimerTask(); 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 = new Timer(); 22 timer.schedule(task,calendar.getTime()); 23 24 } 25 }

 

       

代码实现d:

 1 import java.util.Timer;
 2 import java.util.TimerTask;
 3 
 4 public class Test {
 5     class TestTimerTask extends TimerTask {
 6         private int i = 1;
 7 
 8         @Override
 9         public void run() {
10             System.out.println("定时器第" + i + "次执行!");
11             i += 1;
12         }
13     }
14 
15     public static void main(String[] args) {
16         Test test = new Test();
17         Timer timer = new Timer();
18         timer.schedule(test.new TestTimerTask(), 3000, 2000);  //延迟3秒,每隔两秒执行一次run()方法
19     }
20 }

 

posted @ 2018-11-20 18:03  StarZhai  阅读(1038)  评论(0编辑  收藏  举报