finally是肯定会执行的
来源:互联网 发布:php文件上传类库 编辑:程序博客网 时间:2024/04/30 03:36
try/catch/finally语句下,finally子句是肯定会执行的。但是很多人做不同的测试,却得出了不同的结论。
具体的原理最好是去看《深入java虚拟机》,里面对jsr、ret等几个指令做了详细的说明。这里不深入分析,而仅仅是从表现形式上看一下finally的特征。
代码:
/*
* author: Zang XT
*/
public class TestFinal {
public static void main(String[] args) {
System.out.println("test1:"+testFinal1());
System.out.println("test2:"+testFinal2());
System.out.println("test3:"+testFinal3());
System.out.println("test4:"+testFinal4());
}
static int testFinal1(){
int i = 1;
try{
return i;
}
finally{
System.out.println("in testFinal1():finally 肯定会被执行的!");
i = 48;
}
}
static String testFinal2(){
String str = "try";
try{
return str;
}
finally{
System.out.println("in testFinal2():finally 肯定会被执行的!");
str = "finally";
}
}
static StringBuilder testFinal3(){
StringBuilder build = new StringBuilder("try ");
try{
return build;
}
finally{
System.out.println("in testFinal3():finally 肯定会被执行的!");
build.append("finally");
build = new StringBuilder("你猜我是谁!");
}
}
static String testFinal4(){
try{
return "return in try";
}
finally{
System.out.println("in testFinal4():finally 肯定会被执行的!");
return "return in finally";
}
}
}
输出是:
in testFinal1():finally 肯定会被执行的!
test1:1
in testFinal2():finally 肯定会被执行的!
test2:try
in testFinal3():finally 肯定会被执行的!
test3:try finally
in testFinal4():finally 肯定会被执行的!
test4:return in finally
- finally是肯定会执行的
- 试问,若在try语句块里有一个return语句,同时这个try语句块后面还有一个finally语句块,请问finally语句块里的代码会不会被执行?若答案是肯定的,那么会在什么时候被执行?是在retu
- finally会执行吗
- finally不一定会执行
- 是国家和广大科技化工肯定会概括地讲更好的空间规划分局肯定会
- 房价肯定会跌的
- 不一定会执行finally代码块的两个例子
- try catch finally的执行顺序到底是怎样的?
- return 是在finally的之前还是之后执行!!!
- 世界上最远的距离,肯定是标准规范与实际执行1
- 世界上最远的距离,肯定是标准规范与实际执行2
- 世界上最远的距离,肯定是标准规范与实际执行3
- 上帝会给我们多少次机会?肯定是有限次!
- finally的执行顺序
- finally的执行
- finally块的执行
- try{} finally{} 中 finally的执行顺序
- 这肯定是他们的BUG
- TI OMAP 3530 psp compile note(4)------- 在devkit8000的板子上运行(1)
- Eclipse调整字体的大小
- 【转】【翻译】Orx官方教程:07.特效(FX)
- try-finally 启示
- 算法:简单选择排序
- finally是肯定会执行的
- C# XML helper
- 荷兰迎来十连胜
- Django QuerySet的select_related()函数
- Linux 用户(user)和用户组(group)管理概述
- LabVIEW与数据库使用LabSQL
- Hibernate介绍
- 动态规划的中文分词方法
- 半决赛之乌拉圭vs荷兰