码迷,mamicode.com
首页 > 编程语言 > 详细

Java类实例化时候的加载顺序

时间:2015-10-31 11:28:51      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

面试试题中经常考到此问题,现在做进一步的总结:

public class Student {
	public Student(String name){
		System.out.println(name);
	}
}
// 父类
public class FuClass {
	private static Student student=new Student("父类静态变量");
	private Student student1=new Student("父类非静态变量");
	static {
		System.out.println("父类静态代码块");
	}
	public FuClass(){
		System.out.println("父类构造方法");
	}
	{
		System.out.println("父类非静态代码块 ");
	}
	
}
//子类
public class ZiClass extends FuClass {
	private Student student=new Student("子类非静态变量");
	private static Student student1=new Student("子类静态变量");
	public ZiClass(){
		System.out.println("子类构造方法");
	}
	static {
		System.out.println("子类静态代码块");
	}
	{
		System.out.println("子类非静态代码块");
	}
}
//测试类
public class test {
	public static void main(String[] args) {
		ZiClass zi=new ZiClass();
	}
}

最终执行结果:

父类静态变量

父类静态代码块

子类静态变量

子类静态代码块

父类非静态变量

父类非静态代码块 

父类构造方法

子类非静态变量

子类非静态代码块

子类构造方法

  

 

Java类实例化时候的加载顺序

标签:

原文地址:http://www.cnblogs.com/woolhc/p/4925097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!