2017.12.07 定时任务

一、replace()和repalceAll()
(1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换。
(2)replaceAll的参数是regex,即基于规则表达式的替换。比如,可以通过replaceAll(“\d”, “*”)把一个字符串所有的数字字符都换成星号。
相同点:都是全部替换,如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换。
如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的。
执行了替换操作后,源字符串的内容是没有发生改变的。(替换后返回新的字符串,原来的不变)

二、字符串equals()和==
equals()判断字面是否相同(对象->类型->长度->逐个),==判断是不是同一个对象引用。

三、定时任务
1.简介
(1)在java中一个完整定时任务需要由Timer、TimerTask两个类来配合完成。
(2)Timer:一种工具,线程用其安排以后再后台线程中执行的任务。
(3)TimerTask:Timer把TimerTask安排为一次执行或重复执行的任务。(继承TimerTask的子类要实现run()方法)
2.Timer类
(1)Timer是线程安全的,理解为要获得Timer对象的“key”才能使用这个对象。
(2)Timer的计时器?
(3)schedule方法:
①schedule(TimerTask task, Date time):安排在指定的时间执行指定的任务。
②schedule(TimerTask task, Date firstTime, long period) :安排指定的任务在指定的时间开始进行重复的固定延迟执行。
③schedule(TimerTask task, long delay) :安排在指定延迟后执行指定的任务。
④schedule(TimerTask task, long delay, long period) :安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
(4)scheduleAtFixedRate方法:
①scheduleAtFixedRate(TimerTask task, Date firstTime, long period):安排指定的任务在指定的时间开始进行重复的固定速率执行。
②scheduleAtFixedRate(TimerTask task, long delay, long period):安排指定的任务在指定的延迟后开始进行重复的固定速率执行。
3.TimerTask类:TimerTask是一个抽象类,每一个具体的任务类都必须继承TimerTask,然后重写run()方法。
4.使用实例

public class TimerTest01 {  
Timer timer;  
public TimerTest01(int time){  
    timer = new Timer();  
    timer.schedule(new TimerTaskTest01(), time * 1000);  
}  

public static void main(String[] args) {  
    System.out.println("timer begin....");  
    new TimerTest01(3);  
}
}  

public class TimerTaskTest01 extends TimerTask{  

public void run() {  
    System.out.println("Time's up!!!!");  
}  
}

5.Timer缺陷
(1)首先Timer对调度的支持是基于绝对时间的,而不是相对时间,所以它对系统时间的改变非常敏感。
(2)Timer线程是不会捕获异常的,如果TimerTask抛出的了未检查异常则会导致Timer线程终止,同时Timer也不会重新恢复线程的执行,他会错误的认为整个Timer线程都会取消。同时,已经被安排单尚未执行的TimerTask也不会再执行了,新的任务也不能被调度。

6.用ScheduledExecutorService代替Timer
ScheduledExecutorService scheduExec = Executors.newScheduledThreadPool(2);

http://blog.csdn.net/chenssy/article/details/32703499

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值