我的讲师过去常常告诉我Java程序从main函数开始。但是,这是真的吗?
我的意思是,如果声明了任何全局变量,它们会在main()开始之前分配内存,对吗?
答案 0 :(得分:3)
从技术上讲,在主方法执行之前,可以完整地执行Java程序。任何形式的程序
class X {
public static void main(String[] args) {
... any code as long as it doesn't refer to args ...
}
}
可以改写为
class X {
static {
... the same code ...
}
public static void main(String[] args) {
}
}
并且具有完全相同的行为。请注意,仍然需要main
方法,但它将在程序的所有其他代码之后执行。
答案 1 :(得分:2)
您可以在此处的文档中找到有关此内容的更多详细信息:http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html
简短版: