public class Initialization{
    static int []values=new int[10];
    static 
    {
      System.out.println("Running Initialization block");
      for(int i=0;i<values.length;i++)
     values[i]=(int)(100*Math.random());
    }
    
    void listValues()
    {
     System.out.println();
        for(int i=0;i<values.length;i++)
    
         System.out.print(" "+values[i]);
         System.out.println(" ");
    }
    
   public  static void main(String[]args)
    {
     Initialization example=new  Initialization();
        System.out.println("\nFirst object");
        example.listValues();
        
        //example=new Initialization();这句新建对象可有可无,就只是新建对象?还是另有用意?求详解!
        System.out.println("\nSecond object");
        example.listValues();
        
    }
    
}

解决方案 »

  1.   

    //example=new Initialization();这句新建对象可有可无,就只是新建对象?还是另有用意?求详解! 
    values是静态的,块也是静态的,只初始化一次
    创建对象对values没影响
    如果块不是静态的,就有影响了
      

  2.   

    example=new Initialization(); 为了说明new是实例化出新的对象,没看下面打印Second object第二个对象
    也就说example指向了一个新的对象,而旧的那个会被垃圾回收
     System.out.println("\nSecond object");