A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

曾运 黑马帝 2011-12-30 15:38:59
楼主
静态变量是优先于静态代码块执行的
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 郝锡强 于 2011-12-30 17:47 编辑

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

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

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

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

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




该贴已经同步到 郝锡强的微博

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

5 个回复

倒序浏览
颜宗茂 来自手机 黑马帝 2011-12-30 12:20:40
藤椅
静态方法只有调用的时候才会执行,只是不和对象联系在一起可以通过类调用,maim也一样。finally语句程序不退出的话是一定会执行的,哪怕有return

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
一答:程序要进入main方法 首先要加载类,从而要执行定义在这个类的静态代码段。
二答:首先告诉你:finally块里的代码无论try块中是否发生异常都会执行这是一般的说法,不是绝对的,
那么除了System.exit()别的是不是都不会停止finally了啊?
我告诉你不一定。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
房宝彬 发表于 2011-12-30 14:45
一答:程序要进入main方法 首先要加载类,从而要执行定义在这个类的静态代码段。
二答:首先告诉你:finall ...

.........:L
finally,还有别的情况么
回复 使用道具 举报
付星 黑马帝 2011-12-30 16:58:20
地板
问题一
static
        {
                System.out.println("Em");//这个先执行
        }
        public static void main(String[] args) {
                System.out.println("Gm");//这个后执行
        }
问题二
finally如果是外界原因也有可能不执行,如还没执行时候内存不足强行关闭了

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马