Java中的静态块和构造函数之间有什么区别?

静态块

  • š tatic块 在时执行的类加载

  • š tatic块运行之前执行 main()方法

  • 静态 块 没有任何名称在它的原型。

  • 如果我们希望在类加载时需要执行任何逻辑,则需要将该逻辑放在静态块中,以便在类加载时执行该逻辑。

语法

static {
   //一些陈述
}

示例

public class StaticBlockTest {
   static {
      System.out.println("静态块!");
   }
   public static void main(String args[]) {
      System.out.println("Welcome to (niaoge.com)!");
   }
}

输出结果

静态块!
Welcome to (niaoge.com)!


构造函数

  • 一个构造函数 将同时被执行 创建对象在Java中。

  • 构造 而创建一个类的一个对象被调用。

  • 构造函数名称必须始终与类相同

  • 一个构造函数 被调用一次对一个对象,它被称为很多次 ,我们可以创建一个对象。即,创建对象时,构造函数将自动执行。

语法

public class MyClass {
   //这是构造函数
   MyClass() {
      // 一些陈述
   }
}

示例

public class ConstructorTest {
   static {
      //静态块
      System.out.println("In 静态块!");
   }
   public ConstructorTest() {
      System.out.println("在第一个构造函数中!");
   }
   public ConstructorTest(int c) {
      System.out.println("在第二个构造函数中!");
   }
   public static void main(String args[]) {
      ConstructorTest ct1 = new ConstructorTest();
      ConstructorTest ct2 = new ConstructorTest(10);
   }
}

输出结果

In 静态块!
在第一个构造函数中!
在第二个构造函数中!