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();
}
}
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();
}
}
values是静态的,块也是静态的,只初始化一次
创建对象对values没影响
如果块不是静态的,就有影响了
也就说example指向了一个新的对象,而旧的那个会被垃圾回收
System.out.println("\nSecond object");