直接上代码,看运行结果
public class Test1 {
public static int X=100;
public final static int Y=200;
public Test1(){
System.out.println("Test构造函数执行");
}
static{
System.out.println("static语句块执行");
}
{
System.out.println("not static 语句块执行");
}
public static void display(){
System.out.println("静态方法被执行");
}
public void display_1(){
System.out.println("实例方法被执行");
}
public static void main(String [] args){
Test1.display();
System.out.println("x=" + Test1.X + " y=" + Test1.Y );
Test1.display();
Test1 t1 = new Test1();
Test1 t2 = new Test1();
System.out.println("X=" + t1.X + " Y=" + t1.Y);
Test1.display();
}
}
输出结果
static语句块执行
静态方法被执行
x=100 y=200
静态方法被执行
not static 语句块执行
Test构造函数执行
not static 语句块执行
Test构造函数执行
X=100 Y=200
静态方法被执行
public class Test1 {
public static int X=100;
public final static int Y=200;
public Test1(){
System.out.println("Test构造函数执行");
}
static{
System.out.println("static语句块1执行");
}
static{
System.out.println("static语句块2执行");
}
{
System.out.println("not static 语句块执行");
}
public static void display(){
System.out.println("静态方法被执行");
}
public void display_1(){
System.out.println("实例方法被执行");
}
public static void main(String [] args){
Test1.display();
System.out.println("x=" + Test1.X + " y=" + Test1.Y );
Test1.display();
Test1 t1 = new Test1();
Test1 t2 = new Test1();
System.out.println("X=" + t1.X + " Y=" + t1.Y);
Test1.display();
}
}
static语句块1执行
static语句块2执行
静态方法被执行
x=100 y=200
静态方法被执行
not static 语句块执行
Test构造函数执行
not static 语句块执行
Test构造函数执行
X=100 Y=200
静态方法被执行