展开全部
不是先执行静态e5a48de588b662616964757a686964616f31333332636363代码快。
当调用静态方法时,首先执行静态类属性,static代码块也相当于一个类属性(我是这样理解的);执行的顺序是你属性的排列顺序。当第一次调用静态属性或静态方法以及第一次创建对象时,都会初始化静态属性,分配内存,而且以后不再初始化。如下例:package edu.hu.my;
public class Demo4
{
public static Demo4_1 d1 = new Demo4_1(1);
public static Demo4_1 d2 = new Demo4_1(2);
public static void f()
{
System.out.println("。。。。。");
}
public static void main(String[]args)
{
System.out.println("..."+Demo4.d2+"...");
Demo4.f();
}
}
class Demo4_1
{
public Demo4_1(int i)
{
System.out.println(i++);
}
}
输出:1
2
...edu.hu.my.Demo4_1@15bdc50...
。。。。。
当第一次调用静态属性d2时初始化,所有静态属性;再调用方法f()时,就没有再初始化了。