package com.li.test.classes;
public class Test1 {
public static int k = 0;
public static Test1 initOrder1 = new Test1("t1");
public static Test1 initOrder2 = new Test1("t2");
public static int i = print("i");
public static int n = 99;
public int j = print("j");
{
print("实例块");
}
static {
print("静态块");
}
public Test1(String str) {
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
++i;
++n;
}
public static int print(String str) {
System.out.println((++k) + ":" + str + initOrder2 + " i=" + i + " n="
+ n);
++n;
return ++i;
}
public static void main(String[] args) {
Test1 initOrder = new Test1("init");
}
}
测试输出结果记录如下:
1:jnull i=0 n=0 2:实例块null i=1 n=1 3:t1 i=2 n=2 4:jnull i=3 n=3 5:实例块null i=4 n=4 6:t2 i=5 n=5 7:icom.li.test.classes.Test1@1afae45 i=6 n=6 8:静态块com.li.test.classes.Test1@1afae45 i=7 n=99 9:jcom.li.test.classes.Test1@1afae45 i=8 n=100 10:实例块com.li.test.classes.Test1@1afae45 i=9 n=101 11:init i=10 n=102 |
以上是java类初始化的一个测试例子,感觉非常不错。可以说java类在加载、连接完成后,初始化之前就可以创建实例对象了。
以上仅是个人见解,欢迎拍砖,欢迎交流。962686789@qq.com