黑马程序员技术交流社区

标题: 一个面试题 求打印结果 [打印本页]

作者: likeermei    时间: 2013-11-22 11:52
标题: 一个面试题 求打印结果
public class  smallT
{
        public static void  main(String args[])
        {
                smallT t  = new  smallT();
                int  b  =  t.get();
                System.out.println(b);
        }
       
        public int  get()
        {
                try
                {
                        return 1 ;
                }
                finally
                {
                        return 2 ;
                }
        }
}

作者: 段光宇    时间: 2013-11-22 12:01
结果是2啊
调用get(),函数里有个try和finally,try块中的return语句执行完后,finally块中的语句是一定要执行的,所以return 2,结果为2
作者: 明月几时有    时间: 2013-11-22 12:10
结果绝对是2,本来try中放的是被检测的代码,结果返回1,但是finally中的代码在最后一定会被执行,返回2将前面的1覆盖了,所以打印结果是2!      
在finally块中return或者throw都是不推荐的,这样会导致try和catch中代码的返回值无效。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2