变量的初始化顺序.
代码如下:public class Main{
        public Main() {
    }
        public static void main(String[] args) {        
        
        //new Insect();
        Insect.prt("what are you going to do?");
        Insect.prt("what are you going to do?");
        
    }
     
    
}
class Insect{
    static int prt(String s){
    System.out.println(s);   
    return 47;
    }
    int i=prt("this is i");
    static int ii=prt("this is ii");
    
}
我想问的就是:1、在第一次访问静态函数的时候,是不是就是将这个类加载了?
             2、如果加载了为什么只有执行上述注释的时候才会初始化i?

解决方案 »

  1.   

    1。在第一次访问静态函数的时候,就将这个类加载,这个类中的静态变量就给分配内存了
    2。你注释的部分是创建对象。当Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存,但是,类中的静态变量在该类被加载到内存时就分配相应的内存空间。