呵呵,我的错,看来我举例不好!
没有把问题本质搞出来,不过我确实不理解为什么要用,所以也难举出来。只是我看了初始化块的用法,不明白为什么要用,以及什么时候用何时,以下是我自己作练习时的例子。public class Chushihua1 extends Father{
  {
    int a=9;
    if(a>8){
      System.out.println("执行Chushihua1的普通初始块");
    }
  }
  static{
    System.out.println("执行Chushihua1的静态化初始块");
  }
  public Chushihua1(){
    System.out.println("执行Chushihua1的无参数构造器");
  } 
  public static void main(String[] args){
    new Chushihua1();    //执行Father的静态化初始块
                         //执行Chushihua1的静态化初始块
                         //执行Father的普通初始块
                         //执行Father的无参数构造器 
                         //执行Chushihua1的静态化初始块
                         //行Chushihua1的无参数构造器
  }        
}class Father{
  {
      System.out.println("执行Father的普通初始块");
  }
  static{
    System.out.println("执行Father的静态化初始块");
  }
  public Father(){
     System.out.println("执行Father的无参数构造器");
  }
  
}

解决方案 »

  1.   

    Class A{
     int i = 0
    }
    那么你创建对象 A a = new A();
    之后就可以使用a.i属性
    Class A{
      {
        int i = 0; 
      }

    放在块里面,i就不是A的成员,就不能使用a.i属性,这样该明白了吧?
      

  2.   

    我记得thinking in Java 里有一句话 
    方法是动态绑定的。
    楼主的问题中可以这么想下:
    当 a 为全局变量时   在创建一个对象就要在堆中为它分配空间并初始化(默认为 0 );
    而当 a 为局部变量时, 因为其在方法内,也就是说也是动态绑定的。
    可以这么理解,在创建对象的时候并不给它初始化,只是在调用方法的时候加载到栈中,为其在栈中分配一个空间(没有默认值)。
      

  3.   

    建议吭吭 thinking in Java
    慢慢吭就可以了
    我现在也是在吭的过程中
    共同努力吧
      

  4.   

    静态初始化块比较有用,用来设置static fieldclass DaysOfMonth {
      private static HashMap days = new HashMap();  static {
        days.put("January", 31);
        days.put("February",28);
        days.put("March",31);
        //.....
      }  public static getDays(String month) { return days.get(month);}
    }非静态的初始化块没什么用,只是为了保持语法上的一致。
      

  5.   

    public class TestThread { public TestThread() {
    System.out.println("TestThread") ;
    }

    public static void main(String args[]) {
        new TestThread() ;
        new TestThread() ;
    System.out.println("Hello") ;
    }

    static {
    System.out.println("static") ;
    }
    }static
    TestThread
    TestThread
    Hello