java 中的 finally_Java中的final、finally关键字用法汇总

Final

若final修饰变量,那么该变量则无法再被赋值;若是final修饰的类,那么该类则无法派生出新的子类,同时也无法作为父类被继承;若final定义了一个方法 ;那么该方法不能被重载和覆盖。final关键字特点大致如上,其余不做赘述。

finally

finally通常用于try catch语句块中,完整的异常处理语句一般都有finally语句。无论有无异常发生,finally语句一定会被执行。

今天在牛客网上看到一道题如下:

public class Demo{

public static void main(String arg[]){

System.out.println(getNumber(0));

System.out.println(getNumber(1));

System.out.println(getNumber(2));

System.out.println(getNumber(4));

}

public static int getNumber(int num){

try{

int result=2/num;

return result;

}catch(Exception exception){

return 0;

}finally{

if(num==0){

return -1;

}

if(num==1){

return 1;

}

}

}

}

答案为-1110.

return的作用是返回一个值并跳出该段代码,然而finally是在try-catch中必定会执行的语句块。然而如果在finally中使用return,那么return会覆盖try-catch中的return。补充一点,若finally中使用了throw语句,那么try-catch重throw也同样失效。

至于答案最后一个0,因为2/4=0.5,而结果应该为int型,所以丢失精度,返回为0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值