变量的初始化顺序.
代码如下: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?
代码如下: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?
解决方案 »
- 跪求银联POS终端mac算法
- Runtime.getRuntime().exec和在windows命令窗口里运行程序有什么区别?
- Jtable 删除行问题
- 半角符号
- 插入排序
- ..........如何在另一线程中动态更新界面按钮?.........
- 我学异常这一块真的把我自己学“异常”了!
- 一个sql语句ORA-00933: SQL command not properly ended
- 一道JAVA 小汽车位置移动的作业题 求高手解答
- 关于在一个class中调用另一个class中对象的问题!
- 一个awt问题,求助
- 请教:SWT中table和Jface中tableviewer实现密码回显****
2。你注释的部分是创建对象。当Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存,但是,类中的静态变量在该类被加载到内存时就分配相应的内存空间。