class Demo{
static String string="静态属性";
String string1="普通属性";
static {
System.out.println("静态代码块");
}
{
System.out.println("普通代码块");
}
public Demo(){
System.out.println("构造方法");
}
public static void get(){
System.out.println("static方法");
}
public void set(){
System.out.println("普通方法");
}
}
public class TestDemo {
public static void main(String[] args) {
Demo demo=new Demo();
Demo demo2=new Demo();
}
static String string="静态属性";
String string1="普通属性";
static {
System.out.println("静态代码块");
}
{
System.out.println("普通代码块");
}
public Demo(){
System.out.println("构造方法");
}
public static void get(){
System.out.println("static方法");
}
public void set(){
System.out.println("普通方法");
}
}
public class TestDemo {
public static void main(String[] args) {
Demo demo=new Demo();
Demo demo2=new Demo();
}
}
此题执行结果为
总结 :
加载顺序:静态代码块——>静态属性——>静态方法——>普通属性——>普通代码块——>构造方法——>普通方法
执行顺序:静态代码块——>普通代码块——>构造方法(不管实例化多少个对象,静态代码块只执行一次)
其他执行顺序取决于先调用谁