java算术运算符包括+、-、*、/、%五个双目运算符,结果类型受操作数类型影响:整数除法截断小数,浮点参与则结果为浮点;%余数符号同被除数;+可拼接字符串且左结合;混合运算自动类型提升;整数除零抛异常,浮点除零得infinity或nan。

Java 算术运算符直接对应数学四则运算,但结果类型和行为受操作数类型影响,不是简单套用小学算术规则就能不出错。
加减乘除和取余怎么写
五个基础符号:+(加)、-(减)、*(乘)、/(除)、%(取余)。它们都要求两个操作数,属于双目运算符。
- 整数相加减乘:int a = 10, b = 3; int sum = a + b; // 得 13
- 整数除法会截断小数:10 / 3 结果是 3,不是 3.333
- 只要有一个是浮点数,结果就是浮点数:10.0 / 3 或 10 / 3.0 都得约 3.3333333333333335
- % 只能用于数值类型,10 % 3 得 1;-10 % 3 得 -1(余数符号跟随被除数)
特别注意 + 的双重身份
+ 不只是加法,遇到字符串就变成拼接工具,且从左到右执行,顺序决定结果。
- "Hello" + "World" → "HelloWorld"
- "Age: " + 25 → "Age: 25"(数字自动转字符串)
- 1 + 2 + "3" → "33"(先算 1+2=3,再拼 "3")
- "1" + 2 + 3 → "123"(从左开始,全是拼接)
- 想先算再拼?加括号: "Sum: " + (1 + 2) → "Sum: 3"
类型提升悄悄改变结果
不同数值类型混合运算时,Java 自动把小范围类型转成大范围类型,避免精度丢失。
- int 和 long 相加,结果是 long
- int 和 double 相加,结果是 double(如 5 + 3.14 → 8.14)
- byte、short 参与运算时,先升为 int 再计算,所以 byte a = 1; byte b = 2; byte c = a + b; 会报错——因为 a+b 实际是 int 类型,不能直接赋给 byte
除零不是小事
运行时行为完全不同,必须提前防范。
- int a = 10 / 0; → 抛出 ArithmeticException: / by zero
- double a = 10.0 / 0.0; → 得到 Infinity(正无穷)
- double a = -10.0 / 0.0; → 得到 -Infinity
- double a = 0.0 / 0.0; → 得到 NaN(Not a Number)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











