Java学习

来源:互联网 发布:电脑的网络图标不见了 编辑:程序博客网 时间:2024/05/21 09:31

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不执行。

0 0
原创粉丝点击