指出下面程序的运行结果

class A{ 
 static{ 
 System.out.print("1"); 
 } 
 public A(){ 
 System.out.print("2"); 
 } 
} 
class B extends A{ 
 static{ 
 System.out.print("a"); 
 } 
 public B(){ 
 System.out.print("b"); 
 } 
} 
public class Hello{ 
 public static void main(String[] ars){ 
 A ab = new B(); //执行到此处,结果: 1a2b 
 ab = new B(); //执行到此处,结果: 1a2b2b 
 } 
} 

答:输出结果为 1a2b2b;
类的 static 代码段,可以看作是类首次加载(虚拟机加
载)执行的代码,而对于类加载,首先要执行其基类的构造,再执行其本身的构造。