Java中static代码块,main函数,构造函数运行顺序
其实这不是什么分析的文章,只是因为我容易记混淆这几个的运行顺序,故特地拿出来记录一下,方便记忆。
1、在java工程中,不止一个文件,不止一个类,那么我们如何确定是哪一个main函数是作为工程的入口函数呢?
2、在java类文件中,static代码块,main函数,构造函数的运行顺序
先看一看写出来的测试代码块:
package test_ortention;
public class one {
/**
* @param args
*/
static {
System.out.println("static one is running");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("main one is running");
A a = new A();
// a.main(args);
}
}
class A {
static {
System.out.println("static is running");
}
public static void main(String[] args) {
System.out.println("main A is running");
}
public A() {
System.out.println("A is running");
}
}
在运行的时候,用android版本的eclipse编译java工程的时候是需要选择main函数的:
当直接按照给出的代码块运行的时候,运行的结果是这样的:
static one is running
main one is running
static is running
A is running
这说明静态的代码块是最优先运行的,然后是构造函数,而main函数是不会在不是选择入口main函数的时候主动运行的。如需要调用的话那么必须显示执行a.main(args);