a == 0,b=0。主要是从类的初始化顺序来考虑(注意,myClassA 在静态变量 a、b之前初始化的) 装载 ClassA 对象,随后进行连接->准备(为静态变量分配内存空间,并赋缺省值,比如 int 默认为0,boolean 默认为false)。再进入初始化阶段。执行构造方法。再进行赋初始值。此卡步骤将 0 赋值给 a。因此会覆盖旧的 a 的值。