静态代码块,构造代码块,构造方法的执行顺序

  •  BlockTest类
package com.itheima_05;
/*
 * BlockTest的静态代码块执行了
 * BlockTest的主方法执行了
 * Coder的静态代码块执行了
 * Coder的构造代码块执行了
 * Coder的构造方法执行了
 * Coder的构造代码块执行了
 * Coder的构造方法执行了
 */
public class BlockTest {
	public static void main(String[] args) {
		System.out.println("BlockTest的主方法执行了");
		Coder coder=new Coder();
		Coder coder2=new Coder();
	}
	public BlockTest() {
		System.out.println("BlockTest的构造方法执行了");
	}
	{
		System.out.println("BlockTest的构造代码块执行了");
	}
	static {
		System.out.println("BlockTest的静态代码块执行了");
	}
}
  •  Coder类
package com.itheima_05;

public class Coder {
	public Coder() {
		System.out.println("Coder的构造方法执行了");
	}
	{
		System.out.println("Coder的构造代码块执行了");
	}
	static {
		System.out.println("Coder的静态代码块执行了");
	}
}
  •  运行结果

  • Conclusion

静态代码块只执行一次,在类加载的时候一起加载好了,所以最先执行。

构造代码块在构造方法之前执行。

构造方法最后执行。

这里的BlockTest的构造方法和构造代码块因为没有new对象所以没有执行。

猜你喜欢

转载自blog.csdn.net/jdq8576/article/details/85399985