问题如下:
public class SomeBean {
private static int age = 30;
private static String name = getInitName();
{
System.out.println("code block init...");
}
static {
age = 40;
System.out.println("static code block init...");
}
private static String getInitName() {
System.out.println("static variable init...");
return "SomeBean";
}
public SomeBean() {
System.out.println("invoke SomeBean Constructor...");
}
public static void main(String[] args){
System.out.println(SomeBean.age);
}
}
结果:
static variable init...
static code block init...
40
结论: 通过类直接访问静态变量,只会初始化对象的静态变量和静态代码块部分,而不会真正的去初始化整个对象的信息