问题描述
- 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函数执行之前就执行了对么?
解决方案
参考下:http://blog.csdn.net/tongyi55555/article/details/46627415
解决方案二:
你要什么时候编译这个类,它就什么时候编译。想运行,就得先编译。
类是在运行的时候用到再加载。如果之前已加载,就不会二次加载。
list属于成员变量,将来是随着new出对象的时候分配在堆内存中。所以类加载的时候没有list的。
static语句快是在随着类加载的时候运行一次,后面不会在运行,是在main函数之前运行的。
时间: 2024-09-14 02:56:00