我运行这段代码和的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