【发布时间】:2015-08-30 12:42:50
【问题描述】:
我最近开始学习 Java,遇到的第一个疑问是 main 在 java 中被声明为静态,这样 JVM 就不必初始化类来访问 main。但我的问题是为什么 JVM 避免初始化具有 main 的类?如果我们将 main 声明为非静态会产生什么成本?
【问题讨论】:
-
澄清Java 区分initializing 和instantiating 类可能很重要。该类只被初始化一次,在类加载器加载它之后和调用该类的任何方法之前的某个时间;例如,初始化程序将值分配给静态变量。当一个新实例被创建并且它的实例初始化器(即构造器)运行时,这个类被实例化。