Java has char as an unsigned 16-bit integer type. They should have made byte unsigned as well.
Usually you don't do arithmetic with char in Java, this isn't C culture of anything goes.