byte b=9 ; b=b+6 ;
gives compilation error (possible loss of precision ) why does b=9 not give error whereas b=b+9 give loss
b=9
b=b+9
When adding bytes, the result is an integer, so that you don't get byte overflow.
You should try casting it:
b=(byte)(b+9);