try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
2016-03-08 00:00
477 查看
一般人都会回答在return之前执行,但是更详细的我觉得应该是在return中执行的。
例如:
public class Test {
public static void main(String[] args) {
System.out.println(new Test().test());
}
static int test()
{
int x = 1;
try
{
return x=4;
}
finally
{
System.out.println(finally+x);
}
}
}
结果:
finally4
4
我的理解是,当try运行到return后,就会执行后面的x=4赋值语句,注意只是单纯的赋值并没有return,
然后在执行finally中的东西System.out.println(finally+x);然后打出一行“finally4”,
finally执行完了后才执行return,返回值,然后mian函数中通过
System.out.println(new Test().test());
这句话打印出“4”来。
例如:
public class Test {
public static void main(String[] args) {
System.out.println(new Test().test());
}
static int test()
{
int x = 1;
try
{
return x=4;
}
finally
{
System.out.println(finally+x);
}
}
}
结果:
finally4
4
我的理解是,当try运行到return后,就会执行后面的x=4赋值语句,注意只是单纯的赋值并没有return,
然后在执行finally中的东西System.out.println(finally+x);然后打出一行“finally4”,
finally执行完了后才执行return,返回值,然后mian函数中通过
System.out.println(new Test().test());
这句话打印出“4”来。
相关文章推荐
- 关于学习oracle的PLSQL的完整笔记
- Hadoop集群(第7期)_Eclipse开发环境设置
- String中intern的方法
- hadoop+hbase+zookeeper 分布式集群搭建完美运行
- Python学习笔记一--字符串的使用
- 高精度N的阶乘-N!
- spring动画-iOS-备
- Tomcat负载均衡原理详解及配置(Apache2.2.19+Tomcat7.0.12)
- sftp文件上传和读取
- java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象==
- Hadoop集群系列(目录)
- mysql和oracle区别
- Solr基础教程之solrconfig.xml(三)
- 听说这是互联网时代100本必读书单,你看过几本?
- springMVC中使用List和Map绑定对象作为参数的使用方法
- Maven项目部署使用问题及注意点
- 使用Spring的JAVA Mail支持简化邮件发送
- 十个免费的 Web 压力测试工具
- java中split的坑,用的时候一定要小心
- 使用Jquery操作iframe中的元素