您的位置:首页 > 编程语言 > Java开发

Java学习

2016-03-12 22:19 399 查看

1.Java计时器

//
Timer timer = new Timer();
Date date = new Date(2016-1900, 2, 12, 21, 49, 00);//设置时间-2016年3月12日21:49:00秒开始执行,执行间隔一个小时。
timer.schedule(new Task(), date, 1000*60*60*24);//设置一天执行一次
//

//内部类
static class Task extends TimerTask {

@Override
public void run() {
//执行内容
}

}


2.Finally(面试题)

finally肯定会执行!;

4种情况测试Finally

public static void main(String[] args) {
System.out.println("test1 : "+test1());
}


1.int

private static int test1() {
int i = 1;
try {
return i;
}  finally {
System.out.println("test Finally");
i = 8;
}
}


结果:

test Finally

test1 : 1

2.String

private static String test1() {
String i = "1";
try {
return i;
}  finally {
System.out.println("test Finally");
i = "8";
}
}


结果:

test Finally

test1 : 1

3.StringBuilder

private static StringBuilder test1() {
StringBuilder i = new StringBuilder("1");
try {
return i;
}  finally {
System.out.println("test Finally");
i.append("8");
}
}


结果:

test Finally

test1 : 18

4.两个return

private static String test1() {
try {
return "1";
}  finally {
System.out.println("test Finally");
return "2";
}
}


结果:

test Finally

test1 : 2

结论:在try里面遇到return,先执行finally,在finally里如果有int,String的值重新赋值无效,返回的值还是原来的值。StringBuilder的append有效,执行完finally再执行return。如果try和finally都有return,则只执行finally的return,try的return不执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: