实例解析-Java程序的加载过程

 

package  belief.teach1.classProcess;   
  
/*  
 * Java加载过程 by belief  
 
*/
  
  
//  代表静态final变量的类   
class  StaticFinalVar  {   
  
    
public StaticFinalVar() {   
        System.out.println(
"静态final成员变量初始化开始...");   
    }
   
  
}
   
  
//  代表静态非final变量的类   
class  StaticVar  {   
  
    
public StaticVar() {   
        System.out.println(
"静态非final成员变量初始化开始...");   
    }
   
  
}
   
  
//  代表非静态final变量的类   
class  NonStaticFinalVar  {   
  
    
public NonStaticFinalVar() {   
        System.out.println(
"非静态final成员变量初始化开始...");   
    }
   
  
}
   
  
//  代表非静态非final变量的类   
class  NonStaticVar  {   
  
    
public NonStaticVar() {   
        System.out.println(
"非静态非final成员变量初始化开始...");   
    }
   
  
}
   
  
class  Father  {   
  
    
public Father() {   
        System.out.println(
"Father构造器执行...");   
    }
   
  
}
   
  
class  son  extends  Father  {   
  
    
// System.out.println("非静态非final成员定义...");   
    NonStaticVar nsv = new NonStaticVar();   
  
    
// System.out.println("非静态final成员定义...");   
    final NonStaticFinalVar fnsv = new NonStaticFinalVar();   
    
{   
        System.out.println(
"我是第二吗?...");   
    }
   
    
static {   
        System.out.println(
"看谁先执行...");   
    }
   
  
    
// System.out.println("静态final成员定义...");   
    static final StaticFinalVar sfv = new StaticFinalVar();   
  
    
// System.out.println("静态非final成员定义...");   
    static StaticVar sv = new StaticVar();   
  
    
public son() {   
        System.out.println(
"son构造器执行...");   
    }
   
  
}
   
  
public   class  ClassLoad  {   
  
    
public static void main(String[] args) {   
        
new son();   
  
    }
   
  
}
   
运行结果:   
/*  
 * 看谁先执行...   
 * 静态final成员变量初始化开始...   
 * 静态非final成员变量初始化开始...  
 * Father构造器执行...  
 * 非静态非final成员变量初始化开始...   
 * 非静态final成员变量初始化开始...   
 * 我是第二吗?...   
 * son构造器执行...  
 *   
 
*/
  

你可能感兴趣的:(实例解析-Java程序的加载过程)