Java学习

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值