java吧 关注:1,298,849贴子:12,838,814

Java 每日一题:2016年8月11日

只看楼主收藏回复

每天在这里贴一道 Java 题。
问题不难,有 Java 的基本知识就可以做出来。
问题也不偏,日常工作中时不时会碰到。
每日一题索引页:52.36.153.52:8080/javaquestions/

请问程序输出结果是什么?


1楼2016-08-11 13:12回复
    源程序:
    package javaquestions;
    public class JavaQuestion20160811
    {
    public static void main(String[] args)
    {
    int a = test();
    System.out.println(a);
    }
    public static int test()
    {
    int count = 5;
    try
    {
    return ++count;
    }
    finally
    {
    System.out.println("Finally Block");
    return ++count;
    }
    }
    }


    2楼2016-08-11 13:13
    回复
      2026-03-07 11:42:52
      广告
      不感兴趣
      开通SVIP免广告
      神奇


      IP属地:北京3楼2016-08-11 13:26
      回复
        不会。。。。


        来自Android客户端5楼2016-08-11 13:48
        回复
          Finally Block
          7


          IP属地:北京7楼2016-08-11 14:08
          收起回复
            finally除了前面有System.out,一定会执行,++放在前面先自增再返回


            IP属地:江苏8楼2016-08-11 14:38
            收起回复
              7楼正解


              来自Android客户端9楼2016-08-11 15:21
              回复
                7楼正解,finally在try里面的return执行之后返回之前执行


                IP属地:上海来自Android客户端10楼2016-08-11 15:25
                收起回复
                  2026-03-07 11:36:52
                  广告
                  不感兴趣
                  开通SVIP免广告
                  finally block
                  7


                  IP属地:广东来自iPhone客户端11楼2016-08-11 17:52
                  回复
                    第七行是不是省略了类名点?求解答


                    IP属地:北京来自Android客户端13楼2016-08-11 18:11
                    收起回复
                      楼主,我想和你做朋友


                      来自iPhone客户端14楼2016-08-11 18:47
                      收起回复
                        finally 块是用于清理环境、释放资源的,不是程序返回的地方,所以应当尽量避免使用 return 语句。Eclipse也给出了提示:finally block does not complete normally
                        类似的,finally块中抛出的异常也会压制 try 或 catch 块中抛出的异常,在 finally 中抛出的异常也要妥善处理。


                        15楼2016-08-11 21:28
                        收起回复
                          Finally Block
                          7
                          首先程序会调用test()方法,然后进入try语句,返回给调用者6,但是test方法里面有finally语句块,肯定会执行,所以继续返回执行test()方法,这个时候首先输出它里面Sysem语句,然后此时的count值为6,在++一次,变为7,返回给test(),test()方法执行完毕,然后main函数继续向下执行 就是上面那个答案啦


                          17楼2016-08-11 22:26
                          回复
                            楼主 我想和你做朋友


                            IP属地:贵州来自Android客户端18楼2016-08-11 22:37
                            回复