JAVA基础(第11天 静态代码块、普通代码块、构造函数的执行顺序)

类的加载机制

这个执行顺序与类的加载有关,先看代码:

package com.gs;
 
class Fruit{
	private String colour;
	static {
		System.out.println(" 1 Fruit static");
	}
	{
		System.out.println(" 1 Fruit common");
	}
	public Fruit() {
		System.out.println(" 1 Fruit construction");
	}
}
 
class Apple extends Fruit{
	static {
		System.out.println(" 2 Apple static");
	}
	{
		System.out.println(" 2 Apple common");
	}
	public Apple() {
		System.out.println(" 2 Apple construction");
	}
}
 
public class ExecuteOrder {
	static {
		System.out.println(" 3 ExecuteOrder static");
	}
	{
		System.out.println(" 3 ExecuteOrder common");
	}
	public ExecuteOrder() {
		System.out.println(" 3 ExecuteOrder construction");
	}
	
	static public void main(String[] args) {
		System.out.println("#######################");
		Apple apple1 = new Apple();
		System.out.println("----------");
		Apple apple2 = new Apple();
	}
 
}

执行的结果,如下:


3 ExecuteOrder static
#######################
1 Fruit static
2 Apple static
1 Fruit common
1 Fruit construction
2 Apple common
2 Apple construction
-------------------------------------
1 Fruit common
1 Fruit construction
2 Apple common
2 Apple construction


  • 类加载时, 最先是static代码段 且仅 一次 .
  • 代码段在构造方法前执行多次。
  • 构造方法最后执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值