Java中成员属性赋值是什么时候执行的?解决思路

Java中成员属性赋值是什么时候执行的?
比如
class a{
int n=9;
class a=new class a();
static class b= new class a();
static int num=89;
}
这些都是什么时候执行的赋值语句??

------解决方案--------------------
静态成员、静态内部类、静态方法等都是在类加载的时候运行一次的。类加载时还没有产生类对象,而且类只会被一个 ClassLoader 加载一次。

非静态成员、非静态内部类、非静态方法是在创建对象时初始化的。
------解决方案--------------------
学习了
------解决方案--------------------
哦,火龙果在,没戏了。顶一下,呵呵
------解决方案--------------------
火龙果说的很对,lZ,可以结贴了
------解决方案--------------------
1楼正解!!!!!!!!!!!!!!!!!!!!!!!!!!!!
------解决方案--------------------
Java code

class A{
   A(){
       System.out.println("construct A");
   }
}
public class TestOrder{

   {//实例初始化块
       System.out.println("instance initialization");
   }

   private A a=new A();//成员

   public TestOrder(){//构造函数
       System.out.println("construct TestOrder");
   }
   
   public static void main(String[] args){
        TestOrder to=new TestOrder();
   }
}
/*
实例初始化块和实例成员变量的初始化顺序跟他们出现的顺序一致。
*/

------解决方案--------------------
应该是在类初始化的时候执行的吧