四则运算#

Java 中的四则运算顺序和我们小学学过的一样,先乘除、后加减。在 Java 中,加减乘除分别用+-*(星号)、/(斜杠)表示。用圆括号(())括起来使其运算优先级提到最高。

上面提到的+-*/都属于二元操作符(Binary operator),要求两个操作数。

由二元操作符和表达式组成的式子叫做二元表达式(Binary operator expression)。

整数#

试图将一个整数除以0会导致异常。

jshell> 0/0
|  异常错误 java.lang.ArithmeticException:/ by zero
|        at (#1:1)

溢出#

JLS 规定,若整数相加、减、乘时超出了它的范围,即溢出,则结果为两数和或积在位数足够时2的补码的低阶位(Low-order bits),其符号与两数和或积的符号不同。

对于除法,只有某一数据类型的最小值除以-1时会溢出,其结果为被除数。

取整#

两个整数相除,结果仍为整数。所得的结果向下取整,即去除小数部分。

浮点数#

0除以0得NaN,正数除以0得Infinity,负数除以0得-Infinity

数据类型一节中我们知道 Java 中的浮点数遵守 IEEE 754 标准,这就带来了精度问题。作为新手,我们只需要知道两个浮点数运算的结果不一定与预期相符就行了。

jshell> 0.1 + 0.2
$1 ==> 0.30000000000000004

取余#

使用二元操作符%可对一个数取余数,格式为被除数 % 除数。结果的符号和被除数的符号相同。