I have not yet experimented to find out how it handles line separators. The expansion is controlled by the lineSeparator system property. See File for how this is defined on various platforms. It just squirts out exactly what toString provides. There are no quotes, commas, trailing nulls or other delimiters inserted.
Addition also promotes to int, which println displays differently from char.
There are quite a few differences in the output of println between JDK 1.0 and 1.1. Make sure you are looking at the appropriate table. K 1 Unicode chars get high bits stripped. The string without surrounding quotes. I suspect the cases where you get an extra significant digit is a bug because the final digit appears to be random.