考虑以下基本类:
public class ConstructorExample {
public ConstructorExample(){
System.out.println("Constructor called.");
}
public static void main(String[] args) {
ConstructorExample ce = new ConstructorExample();
}
}
执行上面的代码时,“构造函数被调用”。只打印一次。显然,在调用main方法时会显式调用构造函数。
但是,当JVM加载类并最初启动应用程序时,为什么不调用构造函数?
答案 0 :(得分:6)
否执行main()
方法jvm
不会构造类的对象,这就是为什么main()
方法是static
正在执行
ConstructorExample ce = new ConstructorExample();
确认下面的评论
\\ConstructorExample ce = new ConstructorExample();
答案 1 :(得分:1)
为什么JVM会在启动时调用构造函数? “main”是一个静态方法,它不需要创建一个ConstructorExample实例。
答案 2 :(得分:1)
为什么需要通过对象调用main()
方法?毕竟,它是一种static
方法
main()
方法为static
的目的是JVM不需要创建任何用于调用main()
方法的对象。
因此,当JVM加载.class
文件时,JVM会查找要运行的main()
方法。当它看到一个时,它开始执行程序。在它之后,在创建对象时调用构造函数(在这种情况下),因此只打印一次“Constructor called
”。