题目:下面输出顺序如何?
public class TestCodeSeg
{
static
{
System.out.println("1");
}
{
System.out.println("2");
}
public TestCodeSeg()
{
System.err.println("3");
}
public static void main(String[] args)
{
new TestCodeSeg();
}
}
结果:1,2顺序不变,3输出不定位置不定。
原因:System.out.println输出有缓存,System.err.println是立即输出,可能在输出1或2,还没有输出换行时输出3。
本文探讨了Java中构造器与静态初始化块的执行顺序,并解释了System.out.println与System.err.println输出行为的不同之处,揭示了输出顺序背后的原理。
459

被折叠的 条评论
为什么被折叠?



