什么都不说,直接上来看实例
看下面的程序:
public class JVMTest {
public static void main(String[] args){
System.out.println("aa:" + aa());
}
public static int aa(){
int a = 1;
int b = 10;
try{
System.out.println("abc");
return a;
}finally{
a = 2;
System.out.println("a: "+ a);
}
}
}
运行结果为:
abc
a: 2
aa:1
由此可知:在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。
在转去之前,try中先把要返回的结果存放到不同于a的局部变量中去,执行完finally之后,在从中取出返回结果,
因此,即使finally中对变量a进行了改变,但是不会影响返回结果。
但是,如果在finally子句中最后添加上return a会怎样呢?
执行结果如下:
Compiling 1 source file to E:\sun\InsideJVM\build\classes
E:\sun\InsideJVM\src\JVMTest.java:37: warning: finally clause cannot complete normally
}
1 warning
compile-single:
run-single:
abc
a: 2
aa:2
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liubey_zff/archive/2010/02/24/5323081.aspx
分享到:
相关推荐
最近刚刚追完庆余年,心思还总是在剧情里,然后就觉得在vuejs里watch就是监察院,一个不折不扣的特务... reutrn { candy: } }, //传说中的监察院start watch:{ candy:{ handler(newVal,oldVal){ }, immediate:
面向对象程序设计是一种重要的编程范式,它基于“对象”的概念,强调数据和操作...总之,这份试题旨在测试考生对面向对象程序设计的理解,包括基本概念、类的定义、成员函数的使用、动态内存管理和对象之间的关系等。
如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 ‘NoneType’。 return 语句的作用:结束函数调用、返回值 0x 01 指定返回值与隐含返回值 函数体中 return 语句有指
在main中调用exit(1)和reutrn 1是等价的。内核启动一个进程的唯一的方法是调用exec,用户程序终止进程的唯一方法是显示或者隐式的调用_exit或者EXIT。每个进程都会有一个进程表。进程表是一个全局的指针:environ...
股票买卖最佳时机leetcode 交易优化 Operation Research Solver GLPK 以预测的股票价格为输入来优化交易过程。 更新的文件: ...reutrn: 0.000 Return in $ = 535.35$, percnetage = 2.68 Variance = 0.3
文章目录函数返回值涉及的关键字return关键字yield关键字yield的实现展示(代码+gif)代码实例Debug效果yield返回的数据类型——数据知多少...直接返回该数据类型的对象(比如reutrn 0 # 意味着返回整型对象(也可以返回
React展示 轻松创建自己的React组件展示站点。 安装 $ npm install --save react-showcase ... reutrn } ) ; function App ( ) { return < div> { showcases } < / div > } ReactDOM . render ( < App>
Далееоткройтерминаливвведивнемстроку,которуюнужноскопироватьниже: cd ~ Нажмиклавишу Reutrn ,клавишаэтосизо...
reutrn x+y; } public static int add(int x,int y,int z) { return x+y+z; } public static double add(double x,double y) { return x+y; } } 《Java就业培训教程》P47源码 public class TestAnd { ...