Originally Posted by Junky
Sometimes the reason's quite poor
When you try to add characters, Java will first implicitly cast them to an int. The reason for this is because the creators of Java are trying to get people away from the mentality that the char data type can be used as a number data type. However, since there's a lot of times that using the data from a char as an integer data type is very useful, you couldn't completely segregate the two types. So they just had math operations on char data types implicitly cast up to int's (bytes are too small, shorts technically work except for the issue of being signed where-as char's are technically unsigned, though there's not much of a difference other than interpretation).
Once you have an integer result, you can't implicitly cast back to a char (due to the possible loss of precision), you must explicitly cast it back.