2 dzq boyka Dzq_Boyka 于 2015.07.24 14:10 提问

java类中的代码运行顺序

下面列子:
public class A{
private List list=new ArrayList();
public static void main(string[] args){
A a=new A();

}

}
问 :1,该类什么时候被编译?什么时候被加载?
2,在运行该类的时候list 对象是在main函数执行过才有的么?还是说在加载的时候就已经被创建了?
3,如果其中有静态代码块,那么静态代码块在类加载的时候就被执行了么?也就是说在main函数执行之前就执行了对么?

2个回答

tongyi55555
tongyi55555   2015.07.24 16:16
已采纳
lingfeiwen
lingfeiwen   2015.07.24 14:31

你要什么时候编译这个类,它就什么时候编译。想运行,就得先编译。
类是在运行的时候用到再加载。如果之前已加载,就不会二次加载。
list属于成员变量,将来是随着new出对象的时候分配在堆内存中。所以类加载的时候没有list的。
static语句快是在随着类加载的时候运行一次,后面不会在运行,是在main函数之前运行的。

Dzq_Boyka
Dzq_Boyka 谢谢!不错!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片