同样的代码,运行一次一种结果,怎么回事? 本帖最后由 xingqi10 于 2012-11-12 22:33:16 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是 IDE 的多线程输出造成的Eclipse 和 Netbeans 都是用一个专门的线程用来输出 System.out,另一个专门的线程用来输出 System.err当你的程序里同时有这两种输出的时候,就会表现为多线程式的随机输出,如果单看你用 System.out 输出的内容,还是按顺序的。你的输出都是用了 System.out ,只有这一句:e.printStackTrace();是用了 System.err,下面是这个方法的源代码,在 Throwable.java 中: public void printStackTrace() { printStackTrace(System.err); } 如果你用控制台来运行,就不会有这个问题。如果你把e.printStackTrace();改成 e.printStackTrace(System.out);也不会有这个问题。 URI URL URN 内部类 Swing 如何实现子窗口关闭后父窗口刷新一次 编程问题 问下如何在JAVA中实现数据过滤的问题? 类型转换 求教一个多路归并算法 如何得到TimeStamp型的现在时刻。。 如何读取文件??(文件中有空格和换行的) 回车和换行有什么不同? 菜鸟问个关于报文的菜鸟问题 java伪全景浏览器中对某一图形进行选中的操作如何实现?
是 IDE 的多线程输出造成的Eclipse 和 Netbeans 都是用一个专门的线程用来输出 System.out,另一个专门的线程用来输出 System.err当你的程序里同时有这两种输出的时候,就会表现为多线程式的随机输出,如果单看你用 System.out 输出的内容,还是按顺序的。你的输出都是用了 System.out ,只有这一句:e.printStackTrace();是用了 System.err,下面是这个方法的源代码,在 Throwable.java 中:
public void printStackTrace() {
printStackTrace(System.err);
}