java先执行static还是构造函数_java新建对象的static块与构造器的执行顺序
时间: 2024-03-01 20:54:38 浏览: 94
Java:静态代码块和构造函数执行顺序
在Java中,静态代码块(static block)会在类加载时执行,而构造函数(constructor)则是在创建对象时执行。因此,静态代码块会先于构造函数执行。
具体来说,在Java中,当我们第一次使用一个类时,JVM会加载这个类的字节码文件,并为其分配内存空间,这个过程称为类加载(class loading)。而在类加载的过程中,静态代码块会被执行,而构造函数则只有在创建对象时才会被执行。
举个例子,假设我们有如下的Java类:
```
public class MyClass {
static {
System.out.println("Static block executed");
}
public MyClass() {
System.out.println("Constructor executed");
}
}
```
当我们第一次使用这个类时,JVM会加载它的字节码文件,并执行静态代码块,输出"Static block executed"。而当我们创建一个MyClass的对象时,JVM会为其分配内存空间,并调用构造函数,输出"Constructor executed"。
总之,静态代码块会先于构造函数执行。
阅读全文