不太明白,{......}是在类加载之前完成的吗?那么static {....}呢?大家来看看啊

解决方案 »

  1.   

    static标注的代码块在类开始时执行,所以static代码块对应的类只有一个,而一般的代码在类的每次初始化时都生成,比如static A1 和A2都放在CLASS TEST中,当两次执行new TEST()时,A1只生成一次,并且数据共享,而A2则生成两个,分别对应TEST的两个instance。
    不知道我说清楚了没有
      

  2.   

    不不不,楼上的,我不是问这个我问的是类中那种什么都没有,就是两个{}符号栝起来的代码块,和标有static再加两个{}符号括起来的代码块的区别
      

  3.   

    static{}里面的东西最先执行,如果放在static main()前,则在main()前执行,如果不实例化,{}里的东西不执行。
      

  4.   

    static{}是静态初始化块,在类被ClassLoader装载时执行1次(故一般只被执行1次)
    {}是非静态初始化块,每产生一个该类的实例,就被执行1次(故一般被执行多次)