Я запускаю этот код и
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 между ними, он отбрасывает остальную часть строки.
Наверное, я ответил на часть своего вопроса. Но хотелось бы узнать об этом подробнее. Как 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
abc ccf adksjfhak
иabc ccf\n adksjfhak
. Я не уверен, в чем проблема. - person Matthew   schedule 06.04.2014"abcccf adksjfhak"
. - person Christian   schedule 06.04.2014