PaddleHub Java中高进阶架构 regex checkbox vue网站 vue数据绑定 系统后台模板 多商户商城模板 ajax的get请求 erp项目描述 docker的安全特性有哪些 多线程实现方式 完全去vm去虚拟化工具 cad正在执行命令 mysql查询 python环境搭建 python中items python写入txt文件 java日期 java实现 java程序实例 java入门学习 java数组添加元素 java的instanceof java怎么学 获取当前时间java php实例 广告代码 flash实例教程 千千静听绿色版 霜之祝福 路由器有辐射吗 python的用途 winhex使用教程 微信彩色字 fireworks8 小米游戏鼠标 linux安卓模拟器 html5制作 屏幕录像专家注册机
当前位置: 首页 > 学习教程  > 编程语言

return 和 finally的执行顺序 ?各位大佬请靠过来,

2020/10/8 20:14:34 文章标签:

思考题1 : return 和 finally的执行顺序 ? 答: return 先执行 将方法停下,后执行finally ,最后 在执行 return将值返回 例如: public class Return_Finally {public static void main(String[] args) {System.out.println(A.a()); }} class A {public static int a() {int i …

思考题1 :

return 和 finally的执行顺序 ?

答: return 先执行 将方法停下,后执行finally ,最后 在执行 return将值返回
例如:

public class Return_Finally {

	public static void main(String[] args) {
		System.out.println(A.a()); 
	}

}
class A {
	public static int a() {
		int i = 1;
		try{
			return i;
		}finally {
			System.out.println("f1==>>"+i);
			++i;
			System.out.println("f2==>>"+i);
		}
		
	}
}

结果:
可以看见
可以看见在finally中已经改变了 i 的值最后还是返回了1,这就是思考题二要讨论的了:

思考题2 :

finally执行,然后return将值返回,如果在finally中将值改变了,那么retrun 后的值会不会变?

答:分情况 : retrun返回的值的数据类型

基本数据类型

return返回基本数据类型,且finally中没有return,只是将变量值改变, 这种情况
finally中不影响最终return的值

引用数据类型

return返回引用数据类型(除了String),且finally中没有return,只是将引用类型的值改变, 这种情况
finally中会影响最终return的值

如果finally中有retrun的话,就以finally中return返回的值为准!


本文链接: http://www.dtmao.cc/news_show_250224.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?