您的位置:首页 > 编程语言 > Java开发

Java中静态代码块以及构造方法等执行顺序

2017-07-20 11:06 585 查看
Java中静态代码块,静态方法,静态变量,构造方法,普通变量,普通方法先后执行顺序,记录一下。以下为测试代码:

public class TestOrder {

private String userName;
private int age;
private static String sex;

static{
System.out.println("此处静态代码块正在执行!");
}

public TestOrder() {
System.out.println("这是空构造方法");
}

public TestOrder(String userName, int age) {
super();
this.userName = userName;
this.age = age;
System.out.println("这是带属性构造方法");
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
public static void sayHi(){
System.out.println("静态方法---问好!");
}
public void sayBay(){
System.out.println("非静态方法--告别");
}
}


下面开始进行测试:

1. 首先new出一个空对象

public static void main(String[] args) {
TestOrder order = new TestOrder();
TestOrder order2 = new TestOrder("haha",34);
}


输出结果:

此处静态代码块正在执行!

这是空构造方法

这是带属性构造方法

得到结论:静态代码块在构造方法之前执行

1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化
2、只有在调用new方法时才会创建类的实例
3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
4、类实例销毁时候,首先销毁子类部分,再销毁父类部分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐