类的加载顺序及静态代码块的执行时机

来源:互联网 发布:java 常用算法函数 编辑:程序博客网 时间:2024/06/15 17:41

写程序遇到个问题,找了很久找到的问题;
在工具类里用静态代码块加载了 log4j的配置文件,代码如下:

public class Constants {    static {        //加载log4j配置文件        PropertyConfigurator.configure(SYSDIR + "/log4j.properties" );    }}

问题:日志一直无法记录 加载不到配置文件
误区:记得说静态代码块是在类加载的时候被执行,这个类已经用了,静态代码块应该被执行了。
解决:后来发现尽管用了类里的属性,但是静态代码块是在类被初始化的时候才执行,并不是加载的时候。
一个类的运行分为以下步骤:

1.装载2.连接3.初始化(**static块被加载 且只加载一次**)

参考博客:http://www.cnblogs.com/ivanfu/archive/2012/02/12/2347817.html

0 0
原创粉丝点击