随笔 - 45, 文章 - 2, 评论 - 11, 引用 - 0
数据加载中……

一个小程序内部的运行次序

次序为:
1、static块内代码
2、自上而下的运行代码
3、在try{}catch(){}finally{}内,在try{}内遇到return关键字的时候,就马上跳到finally块内执行。
4、执行完毕finally{}块后就执行刚才的return语句
注意:finally内有return后,方法的其他地方就不能存在return。

输出结果为:

static
try
finally
test:1

 

 


 

posted on 2010-08-09 10:11 jack zhai 阅读(208) 评论(5)  编辑  收藏 所属分类: java2 se

评论

# re: 一个小程序内部的运行次序  回复  更多评论   

int v=0;
try{
return incr(v);
}finally{
return v-1;
}
----------------

int incr(v){return v+1);
==================
你觉得返回啥?incr会执行么?
看看JVM规范吧。
2010-08-09 15:12 | xylz

# re: 一个小程序内部的运行次序  回复  更多评论   

返回是-1 ; incr不会执行。
谢谢您的回复。
2010-08-10 08:14 | jack zhai

# re: 一个小程序内部的运行次序  回复  更多评论   

@jack zhai
不要盲目猜测,你试试就知道了
2010-08-10 08:56 | xylz

# re: 一个小程序内部的运行次序  回复  更多评论   

@xylz
你在incr里面输出一个sysout吧
2010-08-10 08:56 | xylz

# re: 一个小程序内部的运行次序  回复  更多评论   

@xylz
之前的回复我不是猜的。只是我不够严谨。没有在incr()内加入sysout,就认为不运行incr()了,
看来,我还有很多很多不懂的。谢谢您。
2010-08-10 09:51 | jack zhai

只有注册用户登录后才能发表评论。


网站导航: