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


静态块

  • 静态块类加载时执行。
  • 静态块在运行main() 方法之前执行。
  • 静态块在其原型中没有名称
  • 如果我们希望在类加载时执行任何逻辑,则需要将该逻辑放在静态块中,以便在类加载时执行。

语法

static {
   //some statements
}

示例

在线演示

public class StaticBlockTest {
   static {
      System.out.println("Static Block!");
   }
   public static void main(String args[]) {
      System.out.println("Welcome to Tutorials Point!");
   }
}

输出

Static Block!
Welcome to Tutorials Point!


构造函数

  • 在Java 中,构造函数创建对象时执行。
  • 在创建类对象时调用构造函数
  • 构造函数的名称必须始终与类名相同
  • 构造函数每个对象只调用一次,并且可以根据创建对象的次数调用多次。即在创建对象时自动执行构造函数。

语法

public class MyClass {
   //This is the constructor
   MyClass() {
      // some statements
   }
}

示例

在线演示

public class ConstructorTest {
   static {
      //static block
      System.out.println("In Static Block!");
   }
   public ConstructorTest() {
      System.out.println("In a first constructor!");
   }
   public ConstructorTest(int c) {
      System.out.println("In a second constructor!");
   }
   public static void main(String args[]) {
      ConstructorTest ct1 = new ConstructorTest();
      ConstructorTest ct2 = new ConstructorTest(10);
   }
}

输出

In Static Block!
In a first constructor!
In a second constructor!

更新于: 2020年2月11日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告