单个异常处理
1.当try里的代码发生了catch里指定类型的异常之后,才会执行catch里的代码,程序正常执行到结尾
2.如果try里的代码发生了非catch指定类型的异常,则会强制停止程序,报错
3.finally修饰的代码一定会执行,除非在执行到finally之前程序异常退出或者调用了系统的退出方法
面试题1:
在try语句中在执行return语句时,若发现后面跟了finally,则会把return的值先另外用变量缓存,执行完finally之后再真正执行return,return的值是之前缓存的变量。
总结:finally语句中无法改变return返回值
可以用 javap -c verbose runtimeDemo1.class 指令来把字节码文件反编译,得到 JVM 字节码
面试题2:
final finally finalize三者的区别
final修饰的类不能被继承,修饰的方法不能被重写,修饰的变量是常量
finally是try catch语句中的一部分,表示要最终执行的代码,常用来做资源的释放
finalize:Object中的方法,在垃圾回收的时候会用到的方法