黑马程序员技术交流社区

标题: 上周上来额一周java实习,分享几个问题。。。要淡定 [打印本页]

作者: 郝锡强    时间: 2011-12-30 11:51
标题: 上周上来额一周java实习,分享几个问题。。。要淡定
本帖最后由 郝锡强 于 2011-12-30 17:47 编辑

1.老师问:静态变量是最先被执行的么?

答:不是,还有静态代码快

我有一个疑问,那么main在静态代码快前面后面啊

2.老师:finally一定会被执行么?
答:try{}catch{}finally{}不一定会,因为可能有System.exit();

有一个疑问,那么除了System.exit()别的是不是都不会停止finally了啊?




该贴已经同步到 郝锡强的微博
作者: 颜宗茂    时间: 2011-12-30 12:20
静态方法只有调用的时候才会执行,只是不和对象联系在一起可以通过类调用,maim也一样。finally语句程序不退出的话是一定会执行的,哪怕有return
作者: 房宝彬    时间: 2011-12-30 14:45
一答:程序要进入main方法 首先要加载类,从而要执行定义在这个类的静态代码段。
二答:首先告诉你:finally块里的代码无论try块中是否发生异常都会执行这是一般的说法,不是绝对的,
那么除了System.exit()别的是不是都不会停止finally了啊?
我告诉你不一定。
作者: 郝锡强    时间: 2011-12-30 15:09
房宝彬 发表于 2011-12-30 14:45
一答:程序要进入main方法 首先要加载类,从而要执行定义在这个类的静态代码段。
二答:首先告诉你:finall ...

.........:L
finally,还有别的情况么
作者: 曾运    时间: 2011-12-30 15:38
静态变量是优先于静态代码块执行的
  1. public class Demo
  2. {
  3.    public static String aa="静态变量";
  4.    
  5.    static
  6.    {
  7.            System.out.println(aa);//输出:静态变量 ,静态变量优先于静态代码执行,所以在静态代码块能能访问到它
  8.    }

  9.         public static void main(String[] args)
  10.         {
  11.                
  12.       new Demo();
  13.         }
  14.   
  15. }
复制代码

作者: 付星    时间: 2011-12-30 16:58
问题一
static
        {
                System.out.println("Em");//这个先执行
        }
        public static void main(String[] args) {
                System.out.println("Gm");//这个后执行
        }
问题二
finally如果是外界原因也有可能不执行,如还没执行时候内存不足强行关闭了




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