`
暗夜骑士0376
  • 浏览: 79949 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

java类的加载顺序

阅读更多

一个java类的加载顺序,今天做了一个实验,结果如下

 

超类的静态成员

超类的静态块

子类的静态成员

子类的静态块

超类的非静态成员

超类的构造函数

子类的非静态成员

子类的构造函数

 

现在将代码拷一下

class Parent1 {
	private String parent="parent init";
	private static String staticVar="Parent static init";
	
	public Parent1(){
		System.out.println(parent);
		System.out.println("parent constructor......");
	}
	
	static{
		System.out.println("parent static block ........"+staticVar);
	}
}
class Son1 extends Parent1{
	private String son="son init";
	private static String staticSonnVar="son static init";
	
	public Son1(){
		System.out.println(son);
		System.out.println("son constructor....");
	}
	static{
		System.out.println("son static block....."+staticSonnVar);
	}
}
 public class ClassProject
{
	public static void main(String[] args) 
	{	
	//	Parent1 parent=new Parent1();
		Son1 son=new Son1();
	}
}

 运行结果

parent static block ........Parent static init
son static block.....son static init
parent init
parent constructor......
son init
son constructor....

 

分享到:
评论
1 楼 chunxi_cao 2012-07-23  
非静态成员没用调用是不会加载的吧?你这里有输出是因为你在构造方法里面调用了非静态变量,所以才会加载

相关推荐

Global site tag (gtag.js) - Google Analytics