public class Test
{
public static Test1 t = new Test1();
public static int a = 0;
public static int b;
public static void main(String[] arg)
{
System.out.println(Test.a);//a在Test1变成了1,但是又赋成了0
System.out.println(Test.b);//b变成了1,但是由于b后面没有手动赋值,所以JAVA直接跳过了
}
}
class Test1
{
public Test1()
{
Test.a++;
Test.b++;
}
}
静态代码在类初始化的时候调用且只执行一次(在类静态变量初始化和赋值以后)静态代码块在调用静态常量不会引起初始化。
class Test{
static{
System.out.println("初始化");
}
public final static String str="ddd";
}
public class Main {
public static void main(String[] args) {
System.out.println(Test.str);
}
}
输出ddd。