the default value of a char is not the character 'o' (lower case letter O), but the numeric value of 0 (zero). when you try and print it,
java knows it's a char, so prints the ascii character associated with that number. if you look at an ascii table, you will see that the number 0 is a null character. it's a non-printing character.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors