今天听到一位同学说一个面试题,问一个类,可不可以有多个静态代码块。
我不太确定。经测试,一个类可以有多个静态代码块。
public class StaticTest{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// System.out.println();
}
static{
int x=2;
}
static {
int x=1;
}
}
接着又想一想上面这段sx似得的代码,到底它起个什么做用。网上搜索一下关于静态代码块的资料。不敢相信,那些讲解静态代码块的例子都是
static{ System.out.println("static"); } 类似的代码。
我知道静态代码块的特点,最先执行(随类加载,先与构造代码块,构造代码块先于构造函数执行)。
但却是这种输出语句很难体现静态代码块的价值。
希望能够更明白,静态代码块的作用。
|