...
Operator | Overflow |
| Operator | Overflow |
| Operator | Overflow |
| Operator | Overflow |
---|---|---|---|---|---|---|---|---|---|---|
yes |
| yes |
| no |
| | no | |||
yes |
| yes |
| | no |
| | no | ||
yes |
| yes |
| | no |
| | no | ||
yes |
| no |
| \ | no |
| | no | ||
no |
| no |
| | no |
| | no | ||
| yes |
| | no |
| | no |
| | no |
| yes |
| | no |
| | no |
| | no |
| no |
| | no |
| un | no |
| || | no |
yes |
| | no |
| yes |
| | no |
Wiki Markup |
---|
Failing to account for integer overflow has resulted in failures in real systems, for instance, when implementing the {{compareTo()}} method. The {{compareTo()}} method does not care about the magnitude of the operands but only about the sign. Consequently, an optimization is to simply subtract the operands and return the result. For nonpositive operands, this can result in integer overflow and violation of the {{compareTo()}} contract. \[[Bloch 08, item 12|AA. Java References#Bloch 08]\] |
Addition
Addition (as with all arithmetic operations) in Java is performed on signed numbers only as unsigned numbers are unsupported. One exception is the unsigned char
type. Performing arithmetic operations that use operands of type char
is strongly discouraged.
...