我運行這段代碼和的Java打印字符數組
char[] str = { 'a', 'b', 'c', 0, 'c', 'c', 'f' };
System.out.print(str);
System.out.println(" adksjfhak");
這只是打印 「ABC」。 同時,
char[] str = { 'a', 'b', 'c', 0, 'c', 'c', 'f' };
System.out.print(str);
System.out.println("\n adksjfhak");
打印
abc
adksjfhak
爲什麼打印緩衝區停在零(0)字符?這是否意味着Java只是將字符添加到緩衝區並打印該緩衝區?當然,由於該緩衝區之間有0,因此會丟棄該字符串的其餘部分。
也許我已經回答了我自己的問題的一部分。但我想知道更多關於這方面的細節。 Hows JVM如何處理?這個輸出緩衝區在哪裏?任何理由停止在0?爲什麼加入\ n會停止這種行爲?
編輯1:使用JDK 1.7時,Eclipse 3.8.1和Ubuntu 13.10
編輯2:奇怪的是,這一個不存在這樣的問題。 https://ideone.com/VwFbRr
編輯3:我跑的命令行相同
[bin]$ java com.sakura.C
abcccf adksjfhak
這對我來說很好(JDK 1.7) – Christian
@Christian你的意思是在第一種情況下,你會同時獲得abc和adksjfhak嗎? – sakura
分別,它打印出'ABC CCF adksjfhak'和'ABC CCF \ n adksjfhak'我。我不確定問題是什麼。 – Matthew