public class Test{
static double d=12.1234; //1
static int i=f();//2
public static void main(String[] args) {
new Test(); }
static int f() //3
{ System.out.println(d);
return 3;
}
}
主函数中 new Tes();创建一个对象,因为定义的变量和方法都是静态的,所以都加载到内存中。按照顺序加载 ,1 ,2,3 static double d=12.1234会首先加载,这样执行到第二步的时候会调用3.打印结果就是
12.1234
第二种方式:
public class Test{
static int i=f();
static double d=12.1234;
public static void main(String[] args) {
new Test();
}
static int f(){
System.out.println(d);
return 3;
}
}
先执行这一句。static int i=f(); 因为用到了方法f().所以直接调用
static int f(){
System.out.println(d);
return 3;
}
此时 static double d=12.1234; 并没有加载进来。System.out.println(d); 这个会打印d的默认值0.0