想要了解更多java开发的相关信息 , 推荐咨询千锋教育 。千锋励精图治,不改教育初心 。十一年来,千锋以政策为引导,不断完善国内特色现代职业教育体系建设,充分发挥教研师资队伍使命,构建品质教育,加大创新型人才培养力度 , 为经济发展提供智力人才和智力支撑,成为新时期职业教育发展的新方向,在同行业中有很高的美誉度 。
请问JAVA是怎么运用到网站后台开发的一、程序运行界面:
1、总控制台
2、计划任务的设置界面 。
3、控制台输出结果 。
二、程序开发环境:
使用Java(JDK 1.4)开发,图形界面使用Eclipse (2.1.3版)的SWT方式开发 。运行主机:P4 2.6+1G内存 windowsXP操作系统
三、预备 。
开发此类程序,最好不要直接使用JAVA的线程来编程,这样会增加不必要的复杂度和难度,吃力不讨好 。在JAVA中有一个包 java.util.Timer 这个包封装了对线程的操作 , 我们可以把它称做定时器类 。我们先来看一个简单例子:
import java.util.Timer;
import java.util.TimerTask;
public class Reminder {
Timer timer;
public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(),seconds*1000); //参数要求转化成毫秒
}
public static void main(String args[]) {
new Reminder(5); //5秒后运行
}
/**一个内部类,封装了所要运行的任务*/
class RemindTask extends TimerTask {
public void run() {
System.out.println("任务运行 。。。。");
timer.cancel(); //结束timer中的所有任务
}
}
}
这里涉及于两个JAVA类Timer和TimerTask 。我们继承TimerTask类后,将所要运行的任务封装其run方法中;Timer可以管理几千个任务(TimerTask),注意,同一个任务对象不能两次加入到Timer中执行 。
对(虽然执行的任务都一样,但是两个任务对象):
timer.schedule(new RemindTask(), seconds * 1000);
timer.schedule(new RemindTask(), seconds * 1000);
错
RemindTask task= new RemindTask();
timer.schedule(task, seconds * 1000);
timer.schedule(task, seconds * 2000);
四、设计方案 。
主要的类图
说明:
任务类的设计 。我们先创建一个抽象类AbstractTimerTask,这个类直接继承至TimerTask类,提供对TimerTask封装 。然后所有具体的任务类(如:TimerTask_1)继承自AbstractTimerTask 。
import java.util.TimerTask;
public abstract class AbstractTimerTask extends TimerTask {
TaskEntry taskEntry; //任务记录
public AbstractTimerTask(TaskEntry taskEntry) {
this.taskEntry = taskEntry;
}
/*
* 生成一个新的实例相当于克隆自身;原因在于:同一任务对象不能两次加入到Timer
* 在TaskEntry类将看到它的使用方法
*/
abstract AbstractTimerTask getCloneObject();
}
下面是它的一个实现类的源代码我们可以将要运行任务的代码写在这个类中 。
import java.util.Calendar;
public class TimerTask_1 extends AbstractTimerTask {
public TimerTask_1(TaskEntry taskEntry) { //构造方法
super(taskEntry);
}
public AbstractTimerTask getCloneObject() {
return new TimerTask_1(taskEntry);
}
public void run() {
/*在这里写你要执行的程序 。。。。。*/
System.out.println("??时:"+taskEntry.getName()+"运行了一次");
this.taskEntry.taskStart(); //运行下一个时间点任务
}
}
在AbstractTimerTask类有一个TaskEntry字段,这是本设计的一个核心类,它代表一条封装完整的任务记录,每个任务类和它的运行计划都封装在这条类中,源代码如下 。Timer和AbstractTimerTask前面都已说过,那么TimePlan是做什么用的呢?
推荐阅读
- 为什么火山视频都要双击,为什么火山视频都要双击才能播放
- gis图层坐标系设置,gis坐标系转换
- 聚类图用excel怎么画,聚类分析图怎么分析数据
- 双男主养成小游戏推荐,双男主游戏推荐免费
- python函数简单代码 好玩又简单的python函数代码
- postgre字段顺序的简单介绍
- 怎么查手机号的主人,怎么查手机号的主人详细地址
- 软件毕业设计需要那些东西,软件毕业设计要求
- linux命令查看环境 linux命令查看环境变量