看板 java 關於我們 聯絡資訊
Hi, 小弟寫了兩個陣列, 分別用迴圈印出來, 小弟天真的以為第一個迴圈要印完之後, 才會在繼續跑第二個迴圈, 繼續印出來, 但結果卻不是這樣, 如下所示: [source] public static void main(String[] args){ int[] a = {1,2,3}; int[] b = Arrays.copyOf(a, a.length); for(Integer i:a){ System.err.println("a:"+i); } for(Integer i:b){ System.out.println("b"+i); } } [output] a:1b1 a:2 a:3 b2 b3 請問這是為什麼啊? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.15.92 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1400684744.A.13A.html
b10030012:我試很正常啊 一迴圈完 換另一個 05/21 23:15
kingofsdtw:測試後程式正常 05/22 00:36
virve:每次跑都這樣嗎 05/22 00:53
comodore:有時候正常, 有時候不正常 05/22 09:23
forget2009:我覺得出這樣的結果很合理阿,要像你想的那種結果我會 05/22 11:11
forget2009:用兩個Thread synchronized鎖住其中一個印完再解鎖 05/22 11:13
forget2009:喔 抱歉沒看到上面那個b1... 05/22 11:15
PsMonkey:他貼出來的 code 哪裡有 thread 阿阿阿阿 Orz 05/22 12:23
danny8376:感覺這應該是IDE上的console的問題? 05/22 12:34
comodore:不好意思, System.err.println("a:"+1); 05/22 20:01
comodore:改成 System.out.println("a:"+i); 就不會了 05/22 20:02
※ 編輯: comodore (220.134.15.92), 05/22/2014 20:02:58
LPH66:應是 stream 有沒有 buffer 的問題, 印象中 out 有 err 沒有 05/22 23:49
swpoker:沒看到err out 阿 05/23 09:57
comodore:to 樓上, 原po文內容有誤, 修正如推文 05/24 23:14