Primitive operations Doubt

Below code doesnt give compiler error.

char primitiveChar ='b'-'a';

Where as

char primitiveChar ='a'-'b';

Gives compiler error.

[341 byte] By [javapro99a] at [2007-11-27 8:36:53]
# 1
In UNICODE character code 'a' is less than character code 'b' so the compiler works out that 'b'-'a' is positive and 'a'-'b' is negative. Since chars are unsigned they cannot take a negative value.
sabre150a at 2007-7-12 20:33:58 > top of Java-index,Java Essentials,Java Programming...
# 2
Refer http://www.unix.org.ua/orelly/java/javanut/ch02_06.htmand int charInt = 'a'-'b';int charIntRev = 'b'-'a';Doesnt give any error.
Satish_Patila at 2007-7-12 20:33:58 > top of Java-index,Java Essentials,Java Programming...