Quite simply, a byte plus a byte
is an int in Java. The statement you quoted doesn't tell us anything about this either way - but other statements
do confirm it.
JLS 5.6.2 makes it clear.
When an operator applies binary numeric promotion to a pair of operands, each of which must denote a value that is convertible to a numeric type, the following rules apply, in order, using widening conversion (§5.1.2) to convert operands as necessary:
If any of the operands is of a reference type, unboxing conversion (§5.1.8) is performed. Then:
If either operand is of type double, the other is converted to double.
Otherwise, if either operand is of type float, the other is converted to float.
Otherwise, if either operand is of type long, the other is converted to long.
Otherwise, both operands are converted to type int.
sai prashanth wrote:Does it mean byte + byte = int like 8 bits + 8 bits = 32 bits(which is not right!) ?
It means that Java prefers to treat smaller data types as ints, since any modern processor has at least 32-bit words anyway. A byte + a byte gets converted to an int + and int, and the result is an int. It's easy to add bits here - the new bits are all 0.