一个java初级的问题~~
变量的初始化顺序.
代码如下:
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。在第一次访问静态函数的时候,就将这个类加载,这个类中的静态变量就给分配内存了
2。你注释的部分是创建对象。当Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存,但是,类中的静态变量在该类被加载到内存时就分配相应的内存空间。