李尧 发表于 2013-4-12 15:28
我就是不明白这个err流吖,你没改之前的代码,输出结果是不确定的.....我用eclipse测试了.每次运行结果顺序 ...
我用eclipse测试,确实不确定。多次运行,出现的结果暂时发现有123,132,312。132的输出是13在同一行,其它都是单独成行。 再将程序加一部分循环。- class TestErr
- {
- static
- {
- for (int x = 1; x <= 100; x++)
- {
- if (x % 20 == 0)
- System.out.println();
- System.out.print("1");
- }
- }
- {
- for (int x = 1; x <= 100; x++)
- {
- if (x % 20 == 0)
- System.out.println();
- System.out.print("2");
- }
- }
- public TestErr()
- {
- for (int x = 1; x <= 100; x++)
- {
- if (x % 20 == 0)
- System.out.println();
- System.err.print("3");
- }
- }
- public static void main(String[] args)
- {
- new TestErr();
- }
- }
复制代码 在eclipse中,3构造函数中下面语句无效:
if (x % 20 == 0)
System.out.println();
而且输出顺序却似乎固定了,怎么运行都是1和2打印完,才打印3,但格式控制无效。
百度了一些资料,没看到合适的解释。但应该与线程无关。如果你有新的发现,期待分享。 |