java中一个类的各部分的加载顺序

java中的类只加载一次,所以这里只讨论类在第一次实例化时被加载时类中各成员的加载顺序情况。

根据以下示例代码可以看出加载顺序是:(静态代码块、静态字段)>静态主方法>构造代码块>构造函数。至于静态代码块、静态字段谁先被加载,取决于它们的代码段的先后顺序。

package com.blogs;

public class RunningOrders {
	public RunningOrders() {
		super();
		System.out.println("我是构造函数呀");
	}

	//	外部类非静态成员代码块
	{	
		System.out.println("我是非静态构造代码块1");
	}
	
	public static void main(String[] args) {
		System.out.println("主方法执行了");
		new RunningOrders();
		System.out.println("主方法执行结束");
	}
	
//	外部类静态成员代码块
	static {	
		System.out.println("静态代码块1");
	}
	
//	外部类非静态成员代码块
	{	
		System.out.println("我是非静态构造代码块2");
	}

//	外部类静态成员字段
	static InnerDefineTest INT2 = new InnerDefineTest() {
		@Override
		void say() {
			
		}
	};
	
//	外部类静态成员代码块
	static {	
		System.out.println("静态代码块2");
	}
}


abstract class InnerDefineTest{
	abstract void say();
	static {
		System.out.println("静态字段被加载了");
	}
}

输出结果为:

静态代码块1
静态字段被加载了
静态代码块2
主方法执行了
我是非静态构造代码块1
我是非静态构造代码块2
我是构造函数呀
主方法执行结束

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值