Java code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
public class Test{
private static Test tester = new Test(); //step 1
private static int count1; //step 2
private static int count2 = 0; //step 3
public Test(){ //step 4
count1++;
count2++;
System.out.println("" + count1 + count2);
}
public static Test getTester(){ //step 5
return tester;
}
public static void main(String[] args){
Test.getTester();
}
}
问:以上代码执行的顺序~,输出的结果~
这是我昨天面试时碰到的一题,我尽量还原了原题。先说一下,这里count1未初始化可不是我忘了,原题就是这么搞D~
正好我对这种带有自身类型的字段的情况有些迷糊,索性答曰:“有变量未初始化,编译器可能会报错”~
我想问的是,如果忽略未初始化错误的话,以上代码执行顺序到底如何?