Java算术运算核心是+、-、*、/、%五个运算符,整型运算截断小数、取余符号同被除数、除零抛ArithmeticException;浮点运算保留小数、除零得Infinity或NaN、存在精度误差;混合类型自动提升为宽类型;运算符优先级遵循数学规则,括号可显式控制顺序。

Java 基本数据类型进行算术运算,核心是使用 *+、-、`、/、%** 这五个算术运算符,配合整型(如int、long)或浮点型(如double、float`)变量直接计算。不同数据类型在运算时行为有差异,关键在于理解“类型决定结果形态”。
整数类型运算:截断、取余、不可除零
用 `byte`、`short`、`int`、`long` 进行加减乘除时,所有结果仍是整数,小数部分会被直接舍去(不是四舍五入)。
-
除法 `/` 得整商:例如
int a = 10; int b = 3;,则a / b结果为3 -
取余 `%` 只对整数有效:结果符号与被除数一致,如
10 % 3 → 1,-10 % 3 → -1 -
除零会抛异常:运行时触发
ArithmeticException: / by zero,必须避免
浮点类型运算:保留小数、支持无穷与 NaN
用 `float` 或 `double` 运算时,结果自动带小数精度,但要注意浮点误差和特殊值。
-
除法保留小数:例如
double x = 10.0; double y = 3.0;,x / y得3.3333333333333335 -
除零不报错:`10.0 / 0.0` 返回
Infinity;`0.0 / 0.0` 返回NaN(非数字) -
精度问题常见:比如
0.1 + 0.2 != 0.3(实际为0.30000000000000004),金融等场景需改用BigDecimal
混合类型运算:自动提升,结果取“宽”类型
当整数和浮点数一起参与运算(如 int + double),Java 会自动将较小类型提升为较大类型,结果类型由“最宽”的操作数决定。
-
int a = 5; double b = 2.5;→a + b结果是double类型的7.5 -
byte c = 10; short d = 20;→c + d实际先提升为int,结果也是int - 赋值时若目标类型更小(如把
int结果存入byte),需显式强制转换,否则编译报错
运算符优先级与括号控制
Java 遵循常规数学优先级:`*`、`/`、`%` 高于 `+`、`-`;同级从左到右。括号可明确改变顺序,提高可读性与准确性。
-
2 + 3 * 4→ 先算乘法,结果为14 -
(2 + 3) * 4→ 括号优先,结果为20 - 复杂表达式建议分步写或加括号,避免隐式依赖优先级出错
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











