求大神理清下面的代码?
这种代码有神马意义,有神马使用场景?

package pack0402static;public class Test_ {
 
    static {
        _i = 20;//此处好怪异,_i还没有定义哩!?
    }
    
    public static int _i = 10;
    
    public static void main(String[] args) {
        System.out.println(_i);
    }
}
javaj2se

解决方案 »

  1.   

    你下面定义了,static静态代码块相当与一个方法,但是在构造方法前执行,你吧下面定义去了肯定会报错的
      

  2.   

    又是你? 看你保存了一本JVM的电子书,估计又没有看。
    编译器会先执行:
    public static int _i = 10;
    再执行静态代码块。我觉得你还是考虑一下要不要弄JAVA。上个贴子还不知道问题出在哪里吧。
    自己错了,不要随便否认别人给你的建议,先检查自己代码,细心。
      

  3.   

    http://www.cnblogs.com/miniwiki/archive/2011/03/25/1995615.html
    这篇博文把java初始化的顺序写的很详细。可以去看看。
      

  4.   

    static {}代码块是在JVM加载时执行的,而静态变量在static{}块之前执行
      

  5.   

    JVM 是先初始化静态变量,  然后再初始化 静态代码块 static{}
      

  6.   

    他之间已经问过一个类似的问题。
    http://bbs.csdn.net/topics/390416551
    只是不会活用。
      

  7.   

    谢谢你的回复!
    我觉得有什么问题还是细化一点比较好!
    我看大家看看都在CSDN上面活跃,挺好的!
    以后遇到什么问题,希望大家可以积极给点意见!