2013/06/14面试
Timer,实现每隔2秒打印Hello!。
package timer; import java.util.Timer; import java.util.TimerTask; public class TimerTest { public static void main(String[] args) { Timer t = new Timer(); MyTimerTask my = new MyTimerTask(); t.scheduleAtFixedRate(my, 0, 2000); try{ Thread.sleep(5000);//5秒停止 }catch(Exception e){ } t.cancel();//停止 } } class MyTimerTask extends TimerTask{ public void run() { System.out.println("Hello!"); } }
在原来的基础上加了几句,如果没有try以后的语句就为题意,加上后,5秒后既停止。
设计2个线程,1个线程对公共value加1,当value大于或等于100后显示“大于或等于100,不予相加!”,
另一个线程对公共value减1,当value小于或等于0后显示“小于或等于0,不予相减!”
package thread; public class Test { int value = 0; class additionThread extends Thread{ public void run() { while(true){ if(value>=100) { System.out.println("大于100,不予相加!"); } else{ value++; System.out.println("加1后:"+value); } try{ Thread.sleep(500); }catch(Exception e){ } } } } class subtractionThread extends Thread { public void run() { while(true){ if(value<=0){ System.out.println("小于或等于0,不予相减!"); }else{ value--; System.out.println("减1后:"+value); } try{ Thread.sleep(500); }catch(Exception e){ } } } } public void start(){ new additionThread().start(); new subtractionThread().start(); } public static void main(String args[]){ new Test().start(); } }
总结:
基础知识需牢靠,避免模棱两可。